SEQanswers

SEQanswers (http://seqanswers.com/forums/index.php)
-   Bioinformatics (http://seqanswers.com/forums/forumdisplay.php?f=18)
-   -   BLAST+ blastdbcmd batch file formatting (http://seqanswers.com/forums/showthread.php?t=22415)

ssully 08-10-2012 03:13 PM

BLAST+ blastdbcmd batch file formatting
 
db definition lines look like:

>DS170424 | organism=Trichomonas_vaginalis_G3 | version=2007-01-11 | length=883
>DS170425 | organism=Trichomonas_vaginalis_G3 | version=2007-01-11 | length=883
>DS170426 | organism=Trichomonas_vaginalis_G3 | version=2007-01-11 | length=883

[db was created from fasta records using makeblastdb (with parse-seqids)]

Lines of batch input file (test.txt) to pull out subsequences look like:
DS113177 1-10 plus
DS113178 1-10 plus
DS113179 1-10 plus

[whitespace = tab (have also tried space, commas, and semicolon)]

command line query:
blastdbcmd -db TvaginalisGenomic_TrichDB-1.3.fasta -dbtype nucl -entry_batch test.txt

result is a series of 'OID not found" errors.
Error: DS113177 1-10 plus : OID not found
Error: DS113178 1-10 plus : OID not found
Error: DS113179 1-10 plus : OID not found
BLAST query/options error: Entry not found in database

Commandline query works if the batch file contains a list of JUST the sequence IDs (no range or strand info). In this case it returns the entire sequence for that ID. Query also works if I specify one seqID, range, strand e.g.:

blastdbcmd -db TvaginalisGenomic_TrichDB-1.3.fasta -dbtype nucl -entry DS113177 -range 1-10 -strand plus

So, what am I doing wrong? It seems to be something about line formatting in the input file. No guidance on this in the NCBI BLAST+ user manual.

Torst 08-10-2012 05:00 PM

Quote:

Originally Posted by ssully (Post 81171)
Commandline query works if the batch file contains a list of JUST the sequence IDs (no range or strand info). In this case it returns the entire sequence for that ID. So, what am I doing wrong? It seems to be something about line formatting in the input file. No guidance on this in the NCBI BLAST+ user manual.

Maybe I'm missing something, but I think the -entry_batch option is only MEANT to take one ID per line. That does work for me, and for you too.

What made you think it could handle extra range/strand info? It doesn't say it does in the docs. And how would it know which parameters to apply your extra data to?

ssully 08-10-2012 05:36 PM

I would think pulling out subsequences by range and strand would be very common, such that columns two and three in an input file would be specified for range and strand. It didn't even occur to me that they would make the batch function so very limited as to ONLY work for sequence IDs.

Torst 08-10-2012 06:03 PM

It's been that way since the batch mode was implemented for the old BLAST suite (via the "fastacmd" command). I can see your point about batch vs cmdline differences in capability.

It's not that limiting, as you can still do one at a time on the command line. So if you are able to create the 3 column batch file in "A B C" format, then you similarly should be able to create a batch file in "-entry A -range B -strand C" format and use a shell command to apply it:

% (for LINE in batch.txt ; do blastdbcmd -db mydb $LINE ; done) > output.fasta

Problem solved.

ssully 08-16-2012 02:02 PM

Running this on a Windows command line, btw, so I wonder if the syntax would be different. I get "LINE was unexpected at the time" when I try to run that command on a file "'temp.txt" I created with lines that look like:

-entry DS113177 -range 1-10 -strand plus
-entry DS113177 -range 558-1093 -strand plus
-entry DS113177 -range 1415-3062 -strand plus

so I replaced tabs with commas and tried this on the command line

for /F "tokens=*,delims=," %G IN temp.txt DO blastdbcmd -db [mydb] %G %H

error is now
"temp.txt was unexpected at the time"

Torst 08-22-2012 10:42 PM

Quote:

Originally Posted by ssully (Post 81653)
Running this on a Windows command line, btw, so I wonder if the syntax would be different.

I expect the syntax will be different! I am unable to assist with Windows/DOS batch files, sorry.


All times are GMT -8. The time now is 01:57 PM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.