Skip to content

running VAPiD throws IndexError: list index out of range - v2 #18

@ammaraziz

Description

@ammaraziz

Hi,

Thanks for creating vapid. I'm having a similar problem to issue #14 . However it's on a different line of code:

Searching local blast database at ref_seq_vir
Traceback (most recent call last):
  File "../VAPiD/vapid3.py", line 969, in <module>
    strain2species[virus_strain_list[x]] = annotate_a_virus(virus_strain_list[x], virus_genome_list[x],
  File ".../VAPiD/vapid3.py", line 635, in annotate_a_virus
    name_of_virus, our_seq, ref_seq, ref_accession, need_to_rc = blast_n_stuff(strain, strain + SLASH + strain + '.fasta')
  File "../VAPiD/vapid3.py", line 182, in blast_n_stuff
    ref_seq_gb = line.split('|')[3]

I am using the default ref_seq_vir database. Command I used:

python vapid3.py my.fasta example.sbt --metadata_loc meta.csv

I have confirmed all deps are installed (blast, mafft) and running/in path. What's interesting is this line:

for line in open(strain + SLASH + strain + '.blastresults'):
    ref_seq_gb = line.split('|')[3]

This is the output .blastresults content:

yfv	NC_002031.1	99.880	10861	13	0	2	10862	2	10862	0.0	19994

Reading the code, the blast output is in -outfmt 6 which is tab separated. The code above parses the blast output with | as a separator but the file is actually tab delimited. Another odd thing is that the code extracts the fourth element. I have to confess confusion here, why is the above code working for others?

Anyway I changed the offending line(s) to this:

ref_seq_gb = line.split('\t')[1]

there are two instances where the blast file is parsed.

I am running on MacOS ARM based, the OS is detected correctly as Darwin. Python version 3.9. All deps installed via conda (including blast).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions