Si Je comprends bien, vous devez supprimer l'amorce seulement des 17 premiers caractères d'une séquence potentiellement multiligne. Ce que vous demandez est un peu plus difficile. Oui, une solution simple existe, mais elle peut échouer dans certaines situations.
Ma suggestion est: utilisez Biopython pour effectuer l'analyse du fichier FASTA. Directement à partir du tutoriel
from Bio import SeqIO
handle = open("ls_orchid.fasta")
for seq_record in SeqIO.parse(handle, "fasta") :
print seq_record.id
print repr(seq_record.seq)
print len(seq_record)
handle.close()
Réécrivez ensuite la séquence avec les 17 premières lettres supprimées. Je n'ai pas d'installation de biopython sur ma machine actuelle, mais si vous regardez le tutoriel, cela ne prendra pas plus de 15 lignes de code au total.
Si vous voulez aller hardcore, et de le faire manuellement, vous devez faire quelque chose comme ça (de la première affiche, modifié)
f = open('sequence.fsa')
first_line = False
for line in f.xreadlines():
if line[0] == ">":
first_line=True
print line,
else:
if first_line:
print line[17:],
else:
print line,
first_line = False
J'aime la suggestion biopython et la proposition de code. Biopython fonctionnera même si la séquence s'étend sur plusieurs lignes, contient des espaces, etc –
Merci! Fonctionne très bien! – Jon
Fonctionne très bien pour les cas selon les spécifications. Dans tous les autres cas, il peut échouer. –