J'essaie d'écrire en Python un code pour parcourir chaque séquence dans mon fichier fasta et imprimer une nouvelle liste de chaque séquence en utilisant une fenêtre glissante de 1000 nucléotides, mais je ne suis pas sûre est faux.Itérer sur une séquence dans une fenêtre de 1000 nucléotides
"Traceback (most recent call last):
File "<stdin>", line 4, in <module>
TypeError: expected a string or other character buffer object"
Voici mon code:
from Bio import SeqIO
for record in SeqIO.parse("fasta.txt", "fasta"):
pos=0
if pos<len(record)+1:
dna_1000.write("\n"+">"+record.id+"_"+pos+"\n"+record[pos:pos+1000])
pos=pos+1000
Je l'ai essayé un peu différemment:
from Bio import SeqIO
for record in SeqIO.parse("fasta.txt", "fasta"):
for pos in range(0,len(record)+1,1000):
dna_1000.write("\n"+">"+record.id+"_"+"\n"+record[pos:pos+1000])
mais je reçois aussi ce message:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
TypeError: expected a string or other character buffer object
Merci d'avoir pris un coup d'oeil à ça!
Merci à Trevor pour l'explication. Je comprends que Python ne peut pas combiner des chaînes et des entiers mais j'ai du mal à appliquer cette règle quand j'écris le code. Votre suggestion nous a été utile. J'ai juste besoin de changer la boucle "if" en une boucle "while" car autrement, elle n'affichait que la "première" fenêtre glissante pour tous les enregistrements car l'instruction if était vraie (pos était défini à l'extérieur). Cela fonctionne maintenant magnifiquement. Merci beaucoup encore! –