Skip to content

Integration of ENA's ncbiblast.py as an alternative to local BLASTn #65

Description

@SchistoDan

If we're still maintaining ncbi/BLAST as an option for taxonomic validation, using ENA's ncbiblast.py might be a good alternative to a local BLASTn search.

I ran:

python ./python/ncbiblast.py \
  --multifasta \
  --email $EMAIL \
  --program blastn \
  --stype DNA \
  --database em_all \
  --sequence $INPUT_FASTA \
  --maxJobs 10 \
  --useSeqId \
  --exp 1e-5 \
  --outformat tsv \
  --verbose

Which returns a TSV file for each sequence in the input multifasta, containing a summary of the top 50 hits, e.g:

Hit	DB	Accession	Description	Organism	Length	Score(Bits)	Identities(%)	Positives(%)	E()
1	EM_INV	KX045586.1	Celypha woodiana voucher BC ZSM Lep 64352 cytochrome oxidase subunit 1 (COI) gene, partial cds; mitochondrial.	NA	658	1309	99.8	99.8	0.0
2	EM_INV	KX044521.1	Celypha woodiana voucher BC ZSM Lep 53242 cytochrome oxidase subunit 1 (COI) gene, partial cds; mitochondrial.	NA	658	1309	99.8	99.8	0.0
3	EM_INV	JF859737.1	Celypha woodiana voucher TLMF Lep 02153 cytochrome oxidase subunit 1 (COI) gene, partial cds; mitochondrial.	NA	658	1304	99.7	99.7	0.0

em_all represents all sequences on ENA, and you can see in the above output TSV snippet that the invertebrate sequence database contained the top hits shown.

ENA's ncbiblast.py merely submits jobs to ENA's remote servers via HTTP requests, which gets round the considerable resources needed for local BLAST searches.

During my current test, in ~2 hours, 20 sequences have been run through BLASTn and the results downloaded, which (although still relatively slow), I think is considerably faster than a local BLAST search. It's worth noting that I am also using -maxJobs 10 to limit 10 sequences being searched concurrently. ENA state that this can go up to 30, so there is room for further speed increased.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions