BLASTP error - too many positional arguments
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!
• 2,409 views
•
link
1 answer
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
• 0 views
•
link
Log in to answer this question.
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 useparallelas a scheduler? Withnrdatabase you are going to need significant amount of RAM for each job, something to keep in mind.With
-max_target_seqs 1you 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 ).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 6worked pretty well, the issue comes when I try to change it to'6 std salltitles'Thanks for the tip on
-max_target_seqs 1!!I am not a
paralleluser but you can add--dry-runto yourparallelcommand 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.Hi! Your hint worked. I posted the solution below. Thank you so, so much for taking the time to help.