2017-06-07 4 views
0

J'ai une liste des positions d'intérêt, par exemple:Biopython pour extraire les appels de base à une liste des positions

10 
20 
1000 
4000000 

Je veux extraire l'appel de base à ces positions à partir d'un fichier FASTA en utilisant biopython.

Voici ce que j'ai essayé:

query_dic ={} 
with open(line) as pos_file: 
    for x in pos_file: 
     for seq_record in SeqIO.parse(query_file, "fasta"): 
      nuc = seq_record[x] 
      query_dic[x]=nuc 

Le message d'erreur indique 'index non valide' - ce qui est faux?

Répondre

1

Il est très probable que certaines des séquences ne soient pas assez longues pour contenir autant de lettres, ce qui fait que les plus grands index ne sont pas valides.

Vous pourriez envisager de modifier la boucle finale à quelque chose comme ceci:

if len(seq_record) > x: 
    nuc = seq_record[x] 
else: 
    nuc = None 
query_dic[x] = nuc