dib-lab / elvers

(formerly eelpond) an automated RNA-Seq workflow system
https://dib-lab.github.io/elvers/
Other
28 stars 3 forks source link

'quantify' target is currently failing. #28

Closed ctb closed 5 years ago

ctb commented 5 years ago

% ./run_eelpond nema-download.yaml quantify

--------
checking for required files:
--------

        Added default parameters from rule-specific params files.
        Writing full params to .ep_nema-download.yaml
--------
details!
        snakefile: /home/diblions/eelpond/Snakefile
        config: nema-download.yaml
        params: .ep_nema-download.yaml
        targets: ['quantify']
        report: '/home/diblions/eelpond/nema_out/logs/report.html'
--------
Building DAG of jobs...
MissingInputException in line 46 of /home/diblions/eelpond/rules/salmon/salmon.rule:
Missing input files for rule salmon_index:
/home/diblions/eelpond/nema_out/assembly/__assembly__.fasta```
bluegenes commented 5 years ago

See docs. Need to have either generated an assembly or pass an assembly in via the config.

Todo: add informative error message.

ctb commented 5 years ago

I have generated an assembly! 'assemble' ran just fine.

If I run 'assemble' and then (separately) 'quantify' it doesn't work.

bluegenes commented 5 years ago

ok, yes. Can you check ./run_eelpond nema-download assemble quantify? Should work. The problem is that we need to pass an assembly name in for salmon to properly build target files. I'll upd docs.

Two options here:

  1. assume user wants to quantify on all existing assemblies:
    • have run_eelpond find assemblies in the assembly directory, pass all in.
  2. Don't assume this and write a more informative message
  3. Assume (and this is true for now) that the user is only running a Trinity assembly. Add trinity as an included rule in the quantify specification in ep_utils/pipeline_defaults.yaml. Caveats: 1) also need to include khmer rule, and 2) this would mean trinity assembly is run if it hasn't been already, even if the user passes in an assembly via assemblyinput.

Note: option 1 probably fails with plass assemblies, but we could specify all but plass...

bluegenes commented 5 years ago

I should note that preprocess, assemble, quantify and diffexp are attempts at being a bit smarter about what the user wants by including all rules that are necessary for those steps (e.g. make sure we include the get_data rule prior to running trimmomatic).

The user could also include all these rules on the command line: ./run_eelpond nema-test get_data trimmomatic fastqc is functionally equivalent to ./run_eelpond nema-test preprocess, though the targets passed to snakemake are a bit redundant if specifying individual rules.

All of these "subworkflows" / workflows are specified in ep_utils/pipeline_defaults.yaml.

Hopefully this will be a bit clearer when I finish up the docs!

bluegenes commented 5 years ago

specific example here is being addressed in #110