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.
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:
Which returns a TSV file for each sequence in the input multifasta, containing a summary of the top 50 hits, e.g:
em_allrepresents 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 10to limit 10 sequences being searched concurrently. ENA state that this can go up to 30, so there is room for further speed increased.