Changes between Initial Version and Version 32 of Ticket #1374


Ignore:
Timestamp:
Apr 22, 2022, 10:58:03 AM (2 years ago)
Author:
Nicklas Nordborg
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1374 – Description

    initial v32  
    2121
    2222Note that we still want to support the non-container way of running jobs.
     23
     24== Here is the final solution ==
     25
     26The submission procedure has changed quite a lot and there are now several scripts. Scripts that are dynamically generated are designed to be as small as possible and should in most cases only define environment variables and then call a static script that performs the actual work.
     27
     28 * `submit.sh`: This is a generated script and contain options for the job scheduler. It will start the `run.sh` script.
     29 * `run.sh`: This is a static script that is mostly about error handling and is slightly different depending on the cluster type. It will start the `job.sh` script.
     30 * `job.sh`: This is a generated script with all options for running the selected analysis. It will setup paths to data folders, program parameters, etc. and then run another static script that is doing the actual analysis.
     31
     32The `job.sh` script is generated by a combination of settings in `reggie-config.xml` and information that is stored in the database. There are major changes in the `reggie-config.xml`, but all analysis steps are now very similar in how they are configured:
     33
     34 * `<global-env>`: Intended for setting up paths to common folders. For example the `<reference-folder>` is now defined here as `export ReferenceFolder=...`. This setting is included in `job.sh` for all analysis steps.
     35
     36 * `<..>/<env>`: section that is intended for setting up environment variables for a specific analsysis. Lots of settings that were configured by subtags show now go in this sections instead.
     37 * `<..>/<env-debug>`: this section is included if the job is running in debug mode.
     38 * `<..>/<execute>`: the command for executing the analysis script. This is typically as simple as `./run-analysis.sh` but can be more complex if the analsyis should run in a container.
     39
     40Here is an example for the !StringTie step:
     41{{{
     42<stringtie>
     43  <env>
     44    export STRINGTIE="/usr/local/packages/stringtie/1.3.3b/bin/stringtie"
     45    export PREPDE="/usr/local/packages/stringtie/1.3.3b/bin/prepDE.py"
     46    export GTF="${ReferenceFolder}/hg38/hg38.analysisSet_gencode27_snp150/gencode.v27.primary_assembly.annotation_subset_transcripttype_proteincoding.gtf"
     47    export StringTieOptions="--rf -B -e"
     48  </env>
     49  <env-debug></env-debug>
     50  <execute>./stringtie.sh</execute>
     51</stringtie>
     52}}}
     53
     54When running in a container we do not need to specify paths to programs (since the container already knows this):
     55
     56{{{
     57<stringtie>
     58  <env>
     59    export GTF="${ReferenceFolder}/hg38/hg38.analysisSet_gencode27_snp150/gencode.v27.primary_assembly.annotation_subset_transcripttype_proteincoding.gtf"
     60    export StringTieOptions="--rf -B -e"
     61  </env>
     62  <env-debug></env-debug>
     63  <execute>
     64    singularity exec --bind ${ArchiveFolder},${ReferenceFolder} ${ContainerFolder}/stringtie-v1-stringtie1.3.3b.sif ./stringtie.sh
     65  </execute>
     66</stringtie>
     67}}}