BLASTP error - too many positional arguments
1
0
Entering edit mode
17 months ago
Paula ▴ 60

Hello!

I am trying to obtain the functional annotation of multiple protein files in a folder using BLASTP. I am using Parallel to parallelize the job. I first tried with the following command:

ls *.faa | parallel -a - blastp -query {} -db /cluster/project/magna/ncbi/nr -outfmt 6 -num_threads 16 -max_target_seqs 1 -evalue 1e-05 -out {.}.out

It worked, but it did not give me the taxonomic and functional annotations. Therefore, I tried another command:

ls *.faa | parallel -a - blastp -query {} -db /cluster/project/magna/ncbi/nr -outfmt '6 std salltitles' -num_threads 16 -max_target_seqs 1 -evalue 1e-05 -out {.}.out

However, I obtained the following error:

Error:  (CArgException::eSynopsis) Too many positional arguments (1), the offending value: std

I tried retyping the dashes but it did not work.

I also tried:

 ls *.faa | parallel -a - blastp -query {} -db /cluster/project/magna/ncbi/nr -outfmt "6 std salltitles" -num_threads 16 -max_target_seqs 1 -evalue 1e-05 -out {.}.out

And obtained the same error.

Does anyone know how to solve it?

Thank you so much!

parallel blast blastp • 1.2k views
ADD COMMENT
1
Entering edit mode

If you are using a cluster (which may be the case, looking at the file path) why not submit multiple jobs via job scheduler instead of using parallel? Or are you trying to use parallel as a scheduler? With nr database you are going to need significant amount of RAM for each job, something to keep in mind.

With -max_target_seqs 1 you are not guaranteed to get the "best" hit, in case you want that (-max_target_seqs 1 in NCBI standalone BLAST does not do what you think it does ).

ADD REPLY
0
Entering edit mode

Hi! Yes, I am using a cluster with lsf. There are too many fasta files, approximately 60, so I want to run blastp for all of them using a single command in a sh file. The first job using -outfmt 6 worked pretty well, the issue comes when I try to change it to '6 std salltitles'

Thanks for the tip on -max_target_seqs 1 !!

ADD REPLY
1
Entering edit mode

I am not a parallel user but you can add --dry-run to your parallel command to see what command lines will be created. You can then diagnose the issue you are facing. It must be something with how ' or " are being interpreted.

ADD REPLY
0
Entering edit mode

Hi! Your hint worked. I posted the solution below. Thank you so, so much for taking the time to help.

ADD REPLY
1
Entering edit mode
17 months ago
Paula ▴ 60

Hi! Here is the solution

ls *.faa | parallel "blastp -query {} -db /cluster/project/magna/ncbi/nr -outfmt '6 std salltitles' -num_threads 16 -max_target_seqs 1 -evalue 1e-05 -out {.}.out"

Have a beautiful day!

Paula

ADD COMMENT

Login before adding your answer.

Traffic: 2888 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6