Issue running commands on cluster via srun

Hello, i am running qiime2 on conda (HPC), analyzing ITS fungi.
everything is fine until the Assign taxonomy command:
qiime feature-classifier classify-sklearn
–i-classifier unite-ver8-99-classifier.qza
–i-reads reads rep-seqs-dada2.qza
–o-classification taxonomy.qza

i have tried two published trained classifiers, with no help.

i get the error:
srun: fatal: No command given to execute.
Usage: qiime feature-classifier classify-sklearn [OPTIONS]

Classify reads by taxon using a fitted classifier.

Inputs:
–i-reads ARTIFACT FeatureData[Sequence]
The feature data to be classified. [required]
–i-classifier ARTIFACT
TaxonomicClassifier The taxonomic classifier for classifying the reads.
[required]
Parameters:
–p-reads-per-batch INTEGER
Range(0, None) Number of reads to process in each batch. If “auto”,
this parameter is autoscaled to min( number of query
sequences / n-jobs, 20000). [default: 0]
–p-n-jobs INTEGER The maximum number of concurrently worker processes.
If -1 all CPUs are used. If 1 is given, no parallel
computing code is used at all, which is useful for
debugging. For n-jobs below -1, (n_cpus + 1 + n-jobs)
are used. Thus for n-jobs = -2, all CPUs but one are
used. [default: 1]
–p-pre-dispatch TEXT “all” or expression, as in "3n_jobs". The number of
batches (of tasks) to be pre-dispatched.
[default: '2
n_jobs’]
–p-confidence VALUE Float % Range(0, 1, inclusive_end=True) | Str %
Choices(‘disable’) Confidence threshold for limiting taxonomic depth.
Set to “disable” to disable confidence calculation,
or 0 to calculate confidence but not apply it to
limit the taxonomic depth of the assignments.
[default: 0.7]
–p-read-orientation TEXT Choices(‘same’, ‘reverse-complement’, ‘auto’)
Direction of reads with respect to reference
sequences. same will cause reads to be classified
unchanged; reverse-complement will cause reads to be
reversed and complemented prior to classification.
“auto” will autodetect orientation based on the
confidence estimates for the first 100 reads.
[default: ‘auto’]
Outputs:
–o-classification ARTIFACT FeatureData[Taxonomy]
[required]
Miscellaneous:
–output-dir PATH Output unspecified results to a directory
–verbose / --quiet Display verbose output to stdout and/or stderr
during execution of this action. Or silence output if
execution is successful (silence is golden).
–citations Show citations and exit.
–help Show this message and exit.

              There were some problems with the command:                  

(1/3) Missing option “–i-reads”.
(2/3) Missing option “–i-classifier”.
(3/3) Missing option “–o-classification”. ("–output-dir" may also be used)

Welcome to the forum @Mr_Burns!

Note: I have changed your title to better fit the issue; this is not an error specific to taxonomic classification, but rather to how you are writing your command. Here is the key:

You are seeing this because you have separated your command onto multiple lines, so each line is being interpreted as a separate command. If you want to break a command onto multiple lines, put a backslash character (\) at the end of each line to tell the shell to ignore the line break. Like so:

qiime feature-classifier classify-sklearn \
--i-classifier unite-ver8-99-classifier.qza \
--i-reads reads rep-seqs-dada2.qza \
--o-classification taxonomy.qza \

Good luck!

1 Like

Thanks so much Nicolas! The wierd thing, i did included backlashes that from some reason did not pass when i pasted here. Anyhow, eventually it worked just when i made it one lone line without breaks command.

the backslashes tell the shell to ignore the next character. If it’s a line break, the shell sees this as one line. In your case it probably didn’t work because:

  1. the next character was a space
  2. if you copied the command from a word doc or something like that there could be invisible characters, e.g., CRLF line breaks at the end of the line so only one part of the line break (the CR but not the LF) was ignored.
1 Like

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.