changeset 10:e4c01dcece8b draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/salmon commit 26e9f1627e91a4be6bdc7e71cd44f1ea1701ee6f"
author bgruening
date Thu, 22 Jul 2021 14:05:58 +0000
parents ecb9ea6269ee
children e661a3269313
files alevin.xml macros.xml test-data/postSample.bam vpolo_convert.py
diffstat 4 files changed, 82 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/alevin.xml	Wed Mar 24 20:15:12 2021 +0000
+++ b/alevin.xml	Thu Jul 22 14:05:58 2021 +0000
@@ -1,4 +1,4 @@
-<tool id="alevin" name="Alevin" version="@VERSION@+galaxy2">
+<tool id="alevin" name="Alevin" version="@VERSION@+@GALAXY_VERSION@" profile="@PROFILE_VERSION@">
     <description>Quantification and analysis of 3’ tagged-end single-cell sequencing data</description>
     <macros>
         <import>macros.xml</import>
@@ -46,12 +46,16 @@
         && ln -s '${tgmap}' ./alevinmap.tsv
         && salmon alevin -l
         #if $pairstraight.readselect == 'paired':
-            ${pairstraight.orientation}${pairstraight.strandedness}
+            #if $pairstraight.libtype.strandedness == 'A'
+                A
+            #else
+                ${pairstraight.libtype.orientation}${pairstraight.libtype.strandedness}
+            #end if
             -i $index_path
             -1 ./mate1.fastq
             -2 ./mate2.fastq
         #else:
-            '${pairstraight.strandedness}'
+            '${pairstraight.libtype.strandedness}'
             -i $index_path
             -r zcat ./unmate.fastq
         #end if
@@ -126,12 +130,11 @@
             <when value="paired">
                 <param name="file1" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" help="CB+UMI raw sequence file(s)"/>
                 <param name="file2" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" help="Read-sequence file(s)"/>
-                <expand macro="orient"/>
-                <expand macro="stranded"/>
+                <expand macro="stranded_pe"/>
             </when>
             <when value="unmated">
                 <param name="unmatedreads" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" label="Unmated reads files"/>
-                <expand macro="stranded"/>
+                <expand macro="stranded_se"/>
             </when>
         </conditional>
         <param name="protocol" type="select">
@@ -165,24 +168,24 @@
         </section>
     </inputs>
     <outputs>
-        <data name="quants_mat.tsv" label="quants_mat.tsv" format="txt" from_work_dir="quants_mat.tsv">
+        <data name="quants_mat_tsv" label="quants_mat.tsv" format="txt" from_work_dir="quants_mat.tsv">
             <filter>optional["dumpMtx"] is not True</filter>
         </data>
-        <data name="quants_mat.mtx" label="quants_mat.mtx" format="mtx" from_work_dir="output/alevin/quants_mat.mtx">
+        <data name="quants_mat_mtx" label="quants_mat.mtx" format="mtx" from_work_dir="output/alevin/quants_mat.mtx">
             <filter>optional["dumpMtx"]</filter>
         </data>
-        <data name="raw_cb_frequency.txt" label="raw_cb_frequency.txt" format="txt" from_work_dir="output/alevin/raw_cb_frequency.txt">
+        <data name="raw_cb_frequency_txt" label="raw_cb_frequency.txt" format="txt" from_work_dir="output/alevin/raw_cb_frequency.txt">
             <filter>optional["dumpFeatures"]</filter>
         </data>
-        <data name="quants_mat_cols.txt" label="quants_mat_cols.txt" format="txt" from_work_dir="output/alevin/quants_mat_cols.txt"/>
-        <data name="quants_mat_rows.txt" label="quants_mat_rows.txt" format="txt" from_work_dir="output/alevin/quants_mat_rows.txt"/>
+        <data name="quants_mat_cols_txt" label="quants_mat_cols.txt" format="txt" from_work_dir="output/alevin/quants_mat_cols.txt"/>
+        <data name="quants_mat_rows_txt" label="quants_mat_rows.txt" format="txt" from_work_dir="output/alevin/quants_mat_rows.txt"/>
         <data name="quants_tier_mat" label="quants_tier_mat" format="mtx" from_work_dir="output/alevin/quants_tier_mat"/>
-        <data name="alevin.log" label="alevin.log" format="txt" from_work_dir="output/alevin/alevin.log">
+        <data name="alevin_log" label="alevin.log" format="txt" from_work_dir="output/alevin/alevin.log">
             <filter>allout</filter>
         </data>
-        <data name="featureDump.txt" label="featureDump.txt" format="txt" from_work_dir="output/alevin/featureDump.txt"/>
-        <data name="whitelist.txt" label="whitelist.txt" format="txt" from_work_dir="output/alevin/whitelist.txt"/>
-        <data name="bfh.txt" label="bfh.txt" format="txt" from_work_dir="output/alevin/bfh.txt">
+        <data name="featureDump_txt" label="featureDump.txt" format="txt" from_work_dir="output/alevin/featureDump.txt"/>
+        <data name="whitelist_txt" label="whitelist.txt" format="txt" from_work_dir="output/alevin/whitelist.txt"/>
+        <data name="bfh_txt" label="bfh.txt" format="txt" from_work_dir="output/alevin/bfh.txt">
             <filter>optional["dumpBfh"]</filter>
         </data>
         <data name="quants_mean_mat" label="quants_mean_mat" format="mtx" from_work_dir="output/alevin/quants_mean_mat">
@@ -191,23 +194,23 @@
         <data name="quants_var_mat" label="quants_var_mat" format="mtx" from_work_dir="output/alevin/quants_var_mat">
             <filter>optional["numCellBootstraps"]</filter>
         </data>
-        <data name="quants_boot_rows.txt" label="quants_boot_rows.txt" format="txt" from_work_dir="output/alevin/quants_boot_rows.txt">
+        <data name="quants_boot_rows_txt" label="quants_boot_rows.txt" format="txt" from_work_dir="output/alevin/quants_boot_rows.txt">
             <filter>optional["numCellBootstraps"]</filter>
         </data>
-        <data name="alevinmeta_info.json" format="json" label="meta_info.json" from_work_dir="output/aux_info/alevin_meta_info.json">
+        <data name="alevinmeta_info_json" format="json" label="meta_info.json" from_work_dir="output/aux_info/alevin_meta_info.json">
             <filter>allout</filter>
         </data>
-        <data name="ambig_info.tsv" format="tsv" label="ambig_info.tsv" from_work_dir="output/aux_info/ambig_info.tsv">
+        <data name="ambig_info_tsv" format="tsv" label="ambig_info.tsv" from_work_dir="output/aux_info/ambig_info.tsv">
             <filter>allout</filter>
         </data>
-        <data name="meta_info.json" format="json" label="meta_info.json" from_work_dir="output/aux_info/meta_info.json">
+        <data name="meta_info_json" format="json" label="meta_info.json" from_work_dir="output/aux_info/meta_info.json">
             <filter>allout</filter>
         </data>
         <data name="expected_bias" format="txt" label="expected_bias" from_work_dir="output/aux_info/fld"/>
         <data name="observed_bias" format="txt" label="observed_bias" from_work_dir="output/aux_info/observed_bias"/>
         <data name="observed_bias_3p" format="txt" label="observed_bias_3p" from_work_dir="output/aux_info/observed_bias_3p"/>
-        <data name="flenDist.txt" format="txt" label="flenDist.txt" from_work_dir="output/libParams/flenDist.txt"/>
-        <data name="salmon_quant.log" format="txt" label="salmon_quant.log" from_work_dir="output/logs/salmon_quant.log">
+        <data name="flenDist_txt" format="txt" label="flenDist.txt" from_work_dir="output/libParams/flenDist.txt"/>
+        <data name="salmon_quant_log" format="txt" label="salmon_quant.log" from_work_dir="output/logs/salmon_quant.log">
             <filter>allout</filter>
         </data>
         <collection name="umigraphs" type="list" label="Umi graph PDFs">
@@ -241,7 +244,7 @@
                 <param name="freqThreshold" value="5"/>
                 <param name="dumpMtx" value="Yes"/>
             </section>
-            <output name="quants_mat.mtx" file="alevin_mat.mtx" ftype="mtx"/>
+            <output name="quants_mat_mtx" file="alevin_mat.mtx" ftype="mtx" sort="true" lines_diff="62"/>
         </test>
         <test expect_num_outputs="14">
             <conditional name="refTranscriptSource">
@@ -266,7 +269,7 @@
                 <param name="freqThreshold" value="5"/>
                 <param name="dumpMtx" value="Yes"/>
             </section>
-            <output name="quants_mat.mtx" file="alevin_mat.mtx" ftype="mtx"/>
+            <output name="quants_mat_mtx" file="alevin_mat.mtx" ftype="mtx" sort="true" lines_diff="62"/>
         </test>
     </tests>
     <help><![CDATA[
--- a/macros.xml	Wed Mar 24 20:15:12 2021 +0000
+++ b/macros.xml	Thu Jul 22 14:05:58 2021 +0000
@@ -1,24 +1,18 @@
 <macros>
-    <token name="@VERSION@">1.3.0</token>
+    <token name="@VERSION@">1.5.1</token>
     <token name="@GALAXY_VERSION@">galaxy0</token>
     <token name="@IDX_VERSION@">q7</token>
+    <token name="@PROFILE_VERSION@">20.01</token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@VERSION@">salmon</requirement>
             <requirement type="package" version="1.3">seqtk</requirement>
-            <requirement type="package" version="1.10">samtools</requirement>
+            <requirement type="package" version="1.12">samtools</requirement>
             <requirement type="package" version="0.2.0">vpolo</requirement>
-            <requirement type="package" version="1.0.3">pandas</requirement>
-            <requirement type="package" version="1.4.1">scipy</requirement>
+            <requirement type="package" version="1.3.0">pandas</requirement>
+            <requirement type="package" version="1.7.0">scipy</requirement>
         </requirements>
     </xml>
-    <xml name="stranded">
-        <param name="strandedness" type="select" label="Specify the strandedness of the reads">
-                <option value="U" selected="True">Not stranded (U)</option>
-                <option value="SF">read comes from the forward strand (SF)</option>
-                <option value="SR">read comes from the reverse strand (SR)</option>
-        </param>
-    </xml>
     <xml name="orient">
         <param name="orientation" type="select" label="Relative orientation of reads within a pair">
             <option value="M">Mates are oriented in the same direction (M = matching)</option>
@@ -26,6 +20,40 @@
             <option value="I" selected="True">Mates are oriented toward each other (I = inward)</option>
         </param>
     </xml>
+    <xml name="stranded">
+        <conditional name="libtype" >
+            <param name="strandedness" type="select" label="Specify the strandedness of the reads" help="--libtype">
+                <option value="A" selected="true">Infer automatically (A)</option>
+                <option value="U">Not stranded (U)</option>
+                <option value="SF">read comes from the forward strand (SF)</option>
+                <option value="SR">read comes from the reverse strand (SR)</option>
+            </param>
+            <yield/>
+        </conditional>
+    </xml>
+    <xml name="stranded_se">
+        <expand macro="stranded">
+            <when value="A"/>
+            <when value="U"/>
+            <when value="SF"/>
+            <when value="SR"/>
+        </expand>
+    </xml>
+    <xml name="stranded_pe">
+        <expand macro="stranded">
+            <when value="A">
+            </when>
+            <when value="U">
+                <expand macro="orient"/>
+            </when>
+            <when value="SF">
+                <expand macro="orient"/>
+            </when>
+            <when value="SR">
+                <expand macro="orient"/>
+            </when>
+        </expand>
+    </xml>
     <xml name="index">
         <conditional name="refTranscriptSource">
             <param name="TranscriptSource" type="select" label="Select a reference transcriptome from your history or use a built-in index?"
@@ -63,23 +91,20 @@
                 </param>
                 <when value="single">
                     <param name="input_singles" type="data" format="fastq,fasta,fastq.gz,fastq.bz2" label="FASTQ/FASTA file" help="FASTQ file." />
-                    <expand macro="stranded"/>
+                    <expand macro="stranded_se"/>
                 </when>
                 <when value="paired">
                     <param name="input_mate1" type="data" format="fastq,fasta,fastq.gz,fastq.bz2,fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="Mate pair 1" help="FASTQ file." />
                     <param name="input_mate2" type="data" format="fastq,fasta,fastq.gz,fastq.bz2,fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="Mate pair 2" help="FASTQ file." />
-                    <expand macro="orient"/>
-                    <expand macro="stranded"/>
+                    <expand macro="stranded_pe"/>
                 </when>
                 <when value="paired_collection">
                     <param name="input_1" format="fastq,fasta,fastq.gz,fastq.bz2,fastqsanger,fastqsanger.gz,fastqsanger.bz2" type="data_collection" collection_type="paired" label="FASTQ Paired Dataset" help="Must be of datatype &quot;fastqsanger&quot; or &quot;fasta&quot;" />
-                    <expand macro="orient"/>
-                    <expand macro="stranded"/>
+                    <expand macro="stranded_pe"/>
                 </when>
                 <when value="paired_interleaved">
                    <param name="input_1" format="fastq,fasta,fastq.gz,fastq.bz2,fastqsanger,fastqsanger.gz,fastqsanger.bz2" type="data" label="Interleaved FASTQ file" help="Must be of datatype &quot;fastqsanger&quot; or &quot;fasta&quot;. --interleaved"/>
-                   <expand macro="orient"/>
-                   <expand macro="stranded"/>
+                   <expand macro="stranded_pe"/>
                 </when>
             </conditional>
         </section>
@@ -140,9 +165,10 @@
         help="[Experimental]: The fraction of the read that must be covered by MMPs (of length >= 31) if this read is to be considered as 'mapped'. This may help to avoid 'spurious' mappings. A value of 0 (the default) denotes no coverage threshold (a single 31-mer can yield a mapping). Since coverage by exact matching, large, MMPs is a rather strict condition, this value should likely be set to something low, if used."/>
     </xml>
     <xml name="align">
-        <param name="afile" type="data" format="bam" label="Alignment file"/>
+        <param name="afile" type="data" format="qname_input_sorted.bam,qname_sorted.bam" label="Alignment file"/>
+        <param argument="--ont" type="boolean" truevalue="--ont" falsevalue="" label="Is this Alignment file a Oxford Nanopore Technologies (ONT) dataset ?" help="Select this for both cDNA and direct RNA ONT datasets. Enables an alignment error model designed to work with long-read alignments and disables the length effect in the generative model when computing the conditional probability of observing a fragment given that it arises from a specific transcript. This is because in long-read sequencing, we do not expect to observe (i.e. sequence) multiple fragments from the same molecule, and thus we do not expect the transcript length to directly affect the observed fragment count directly"/>
         <param name="transcript" type="data" format="fasta,fa" label="Transcript file"/>
-        <expand macro="stranded"/>
+        <expand macro="stranded_se"/>
         <param name="discardOrphans" type="boolean" truevalue="--discardOrphans" falsevalue="" checked="False"
         label="Discard orphans"
         help="Discard orphan alignments in the input. If this flag is passed, then only paired alignments will be considered toward quantification estimates. The default behavior is to consider orphan alignments if no valid paired mappings exist."/>
@@ -230,7 +256,7 @@
             label="Use the traditional EM algorithm for optimization in the batch passes."
             help=""/>
             <param name="rangeFactorizationBins" type="integer" value="0" label="Range of factorization bins"
-            help="Factorizes the likelihood used in quantification by adopting a new notionof equivalence classes based on the conditional probabilities with which fragments are generated from different transcripts. This is a more fine-grained factorization than the normal rich equivalence classes. The default value (0) corresponds to the standard rich equivalence classes, and larger values imply a more fine-grained factorization. If range factorization is enabled, a common value to select for this parameter is 4."/>
+            help="Factorizes the likelihood used in quantification by adopting a new notion of equivalence classes based on the conditional probabilities with which fragments are generated from different transcripts. This is a more fine-grained factorization than the normal rich equivalence classes. The default value (0) corresponds to the standard rich equivalence classes, and larger values imply a more fine-grained factorization. If range factorization is enabled, a common value to select for this parameter is 4."/>
             <param name="numGibbsSamples" type="integer" value="0" optional="True"
             label="Number of Gibbs sampling rounds to perform."
             help="" />
@@ -360,7 +386,7 @@
         salmon quant
             --index '$index_path'
             #if $quant_type.input.single_or_paired.single_or_paired_opts == 'single':
-                --libType ${quant_type.input.single_or_paired.strandedness}
+                --libType ${quant_type.input.single_or_paired.libtype.strandedness}
                 #if $compressed == 'GZ':
                     --unmatedReads <(zcat < ./single.$ext)
                 #else if $compressed == 'BZ2':
@@ -369,7 +395,12 @@
                     --unmatedReads ./single.$ext
                 #end if
             #else:
-                --libType '${quant_type.input.single_or_paired.orientation}${quant_type.input.single_or_paired.strandedness}'
+                --libType
+                #if $quant_type.input.single_or_paired.libtype.strandedness == 'A'
+                    A
+                #else
+                    ${quant_type.input.single_or_paired.libtype.orientation}${quant_type.input.single_or_paired.libtype.strandedness}
+                #end if
                 #if $quant_type.input.single_or_paired.single_or_paired_opts == 'paired_interleaved':
                     #if $compressed == 'BZ2':
                         --mates1 <(bzcat < ./mate1.$ext | seqtk seq -1)
@@ -435,8 +466,9 @@
         #end if
         salmon quant
         -t '${quant_type.transcript}'
-        -l '${quant_type.strandedness}'
+        -l '${quant_type.libtype.strandedness}'
         -a '${quant_type.afile}'
+        $quant_type.ont
         --threads "\${GALAXY_SLOTS:-4}"
         ${quant_type.discardOrphans}
         ${quant_type.noErrorModel}
Binary file test-data/postSample.bam has changed
--- a/vpolo_convert.py	Wed Mar 24 20:15:12 2021 +0000
+++ b/vpolo_convert.py	Thu Jul 22 14:05:58 2021 +0000
@@ -4,7 +4,6 @@
 
 from vpolo.alevin import parser as par
 
-
 parser = argparse.ArgumentParser()
 parser.add_argument("--mtx", "-m", action="store_true", help="--dumpMtx flag set")
 parser.add_argument("--umi", "-u", action="store_true", help="--dumpUmiGraph flag set")