Repository 'mirplant2'
hg clone https://toolshed.g2.bx.psu.edu/repos/big-tiandm/mirplant2

Changeset 49:f008ab2cadc6 (2014-12-03)
Previous changeset 48:28ad3b598670 (2014-12-03) Next changeset 50:7b5a48b972e9 (2014-12-05)
Commit message:
Uploaded
modified:
tool_data_table_conf.xml.sample
added:
miRPlant.pl
miRPlant.xml
tool-data/bowtie_indices.loc.sample
tool_dependencies.xml
b
diff -r 28ad3b598670 -r f008ab2cadc6 miRPlant.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/miRPlant.pl Wed Dec 03 02:03:27 2014 -0500
[
b'@@ -0,0 +1,506 @@\n+#!/usr/bin/perl -w\n+#Filename:\n+#Author: Tian Dongmei\n+#Email: tiandm@big.ac.cn\n+#Date: 2014-4-22\n+#Modified:\n+#Description: plant microRNA prediction\n+my $version=1.00;\n+\n+use strict;\n+use Getopt::Long;\n+use threads;\n+#use threads::shared;\n+use File::Path;\n+use File::Basename;\n+#use RNA;\n+#use Term::ANSIColor;\n+\n+my %opts;\n+GetOptions(\\%opts,"i:s@","tag:s@","format=s","gfa=s","pre=s","mat=s","rfam:s","dis:i","flank:i","mfe:f","idx:s","idx2:s","mis:i","r:i","v:i","e:i","f:i","a:s","M:i","t:i","min:i","max:i","o:s","path:s","D","h");\n+if (!(defined $opts{i} and defined $opts{format} and defined $opts{gfa} and defined $opts{pre} and defined $opts{mat}) || defined $opts{h}) { #necessary arguments\n+&usage;\n+}\n+\n+my $time=&Time();\n+print "miPlant program start:\\n   The time is $time!\\n";\n+print "Command line:\\n   $0 @ARGV\\n";\n+\n+my $format=$opts{\'format\'};\n+if ($format ne "fastq" && $format ne "fq" && $format ne "fasta" && $format ne "fa") { \n+\t#&printErr();\n+\tdie "Parameter \\"-format\\" is error! Parameter is fastq, fq, fasta or fa\\n";\n+}\n+\n+my $phred_qv=64;\n+\n+\n+my @inputfiles=@{$opts{\'i\'}};\n+my @inputtags=@{$opts{\'tag\'}};\n+\n+my  $mypath=`pwd`;\n+chomp $mypath;\n+\n+my $dir=defined $opts{\'o\'} ? $opts{\'o\'} : "$mypath/miRPlant_out/";\n+\n+\n+unless ($dir=~/\\/$/) {$dir.="/";}\n+if (not -d $dir) {\n+\tmkdir $dir;\n+}\n+my $config=$dir."/input_config";\n+open CONFIG,">$config";\n+\tfor (my $i=0;$i<@inputfiles;$i++) {\n+\t\tprint CONFIG $inputfiles[$i],"\\t",$inputtags[$i],"\\n";\n+\t}\n+close CONFIG;\n+\n+my $scipt_path=defined $opts{\'path\'} ? $opts{\'path\'} : "/Users/big/galaxy-dist/tools/myTools/";\n+\n+my $a="ATCTCGTATG";  #adapter\n+if (defined $opts{\'a\'}) {$a=$opts{\'a\'};}\n+\n+my $m=6;  #adapter minimum mapped nt\n+if (defined $opts{\'M\'}) {$m=$opts{\'M\'};}\n+\n+my $t=1; #threads number\n+if (defined $opts{\'t\'}) {$t=$opts{\'t\'};}\n+\n+my $min_nt=19; # minimum reads length\n+if (defined $opts{\'min\'}) {$min_nt=$opts{\'min\'};}\n+\n+my $max_nt=28; #maximum reads length\n+if (defined $opts{\'max\'}) {$max_nt=$opts{\'max\'};}\n+\n+my $mis=0; #mismatch number for microRNA\n+if (defined $opts{\'mis\'}) {$mis=$opts{\'mis\'};}\n+\n+my $mis_rfam=0;# mismatch number for rfam\n+if (defined $opts{\'v\'}) {$mis_rfam=$opts{\'v\'};}\n+\n+my $hit=25; # maximum reads mapping hits in genome\n+if (defined $opts{\'r\'}) {$hit=$opts{\'r\'};}\n+\n+my $upstream = 2; # microRNA 5\' extension\n+$upstream = $opts{\'e\'} if(defined $opts{\'e\'});\n+\n+my $downstream = 5;# microRNA 3\' extension\n+$downstream = $opts{\'f\'} if(defined $opts{\'f\'});\n+\n+my $maxd=defined $opts{\'dis\'} ? $opts{\'dis\'} : 200;\n+my $flank=defined $opts{\'flank\'} ? $opts{\'flank\'} :10;\n+my $mfe=defined $opts{\'mfe\'} ? $opts{\'mfe\'} : -20;\n+\n+$time=&Time();\n+print "$time, Checking input file!\\n";\n+\n+my (@filein,@mark,@clean);\n+#&read_config();\n+@filein=@inputfiles;\n+@mark=@inputtags;\n+\n+&checkfa($opts{pre});\n+&checkfa($opts{mat});\n+&checkfa($opts{gfa});\n+\n+\n+##### clip adpter --> clean data  start\n+$time=&Time();\n+print "$time, Preprocess:\\n   trim adapter, reads collapse and filter reads by length.\\n";\n+\n+$time=~s/:/-/g;\n+$time=~s/ /-/g;\n+my $preprocess=$dir."preProcess_${time}/";\n+mkdir $preprocess;\n+my $can_use_threads = eval \'use threads; 1\';\n+if ($can_use_threads) {\n+# Do processing using threads\n+\tprint "Do processing using threads\\n";\n+\tmy @filein1=@filein; my @mark1=@mark;\n+\twhile (@filein1>0) {\n+\t\tmy @thrs; my @res;\n+\t\tfor (my $i=0;$i<$t ;$i++) {\n+\t\t\tlast if(@filein1==0);\n+\t\t\tmy $in=shift @filein1;\n+\t\t\tmy $out=shift @mark1;\n+\t\t\tpush @clean,$preprocess.$out."_clips_adapter.fq";\n+\t\t\t$thrs[$i]=threads->create(\\&clips,$in,$out);\n+\t\t}\n+\t\tfor (my $i=0;$i<@thrs;$i++) {\n+\t\t\t$res[$i]=$thrs[$i]->join();\n+\t\t}\n+\t}\n+} else {\n+# Do not processing using threads\n+\tprint "Do not processing using threads\\n";\n+\tfor (my $i=0;$i<@filein ;$i++) {\n+\t\tmy $in=$filein[$i];\n+\t\tmy $out=$mark[$i];\n+\t\tpush @clean,$preprocess.$out."_clips_adapter.fq";\n+\t\t&clips($in,$out);\n+\t}\n+}\n+\n+##### clip adpter --> clean data  end\n+\n+my $collapsed=$preprocess."collapse_reads.fa";\n+my $da'..b'opendir I,$dir;\n+\tmy @ret;\n+\twhile (my $file=readdir I) {\n+\t\tif ($file=~/$str/) {\n+\t\t\tpush @ret, $file;\n+\t\t}\n+\t}\n+\tclosedir I;\n+\tif (@ret != 1) {\n+\t\t#&printErr();\n+\n+\t\tdie "Can not find directory or file which name has string: $str !!!\\n";\n+\t}\n+\treturn $ret[0];\n+}\n+\n+=cut\n+\n+sub printErr{\n+    print STDERR color \'bold red\';\n+    print STDERR "Error: ";\n+    print STDERR color \'reset\';\n+}\n+sub Time{\n+        my $time=time();\n+        my ($sec,$min,$hour,$day,$month,$year) = (localtime($time))[0,1,2,3,4,5,6];\n+        $month++;\n+        $year+=1900;\n+        if (length($sec) == 1) {$sec = "0"."$sec";}\n+        if (length($min) == 1) {$min = "0"."$min";}\n+        if (length($hour) == 1) {$hour = "0"."$hour";}\n+        if (length($day) == 1) {$day = "0"."$day";}\n+        if (length($month) == 1) {$month = "0"."$month";}\n+        #print "$year-$month-$day $hour:$min:$sec\\n";\n+        return("$year-$month-$day-$hour-$min-$sec");\n+}\n+=cut\n+sub Time{\n+        my $time=time();\n+        my ($sec,$min,$hour,$day,$month,$year) = (localtime($time))[0,1,2,3,4,5,6];\n+        $month++;\n+        $year+=1900;\n+        if (length($sec) == 1) {$sec = "0"."$sec";}\n+        if (length($min) == 1) {$min = "0"."$min";}\n+        if (length($hour) == 1) {$hour = "0"."$hour";}\n+        if (length($day) == 1) {$day = "0"."$day";}\n+        if (length($month) == 1) {$month = "0"."$month";}\n+        #print "$year-$month-$day $hour:$min:$sec\\n";\n+        return("$year-$month-$day $hour:$min:$sec");\n+}\n+\n+\n+sub usage{\n+print <<"USAGE";\n+Version $version\n+Usage:\n+\n+$0 -i -format -gfa -index -pre -mat -rfam -D -a -M -min -max -mis -e -f -v -t  -o  -path\n+options:\n+-i input files, # raw data file, can be multipe eg. -i xxx.fq -i xxx .fq ...\n+-tag string # raw data file names, -tag xxx -tag xxx\n+\n+-format string,#specific input rawdata file format : fastq|fq|fasta|fa\n+\n+-path scirpt path\n+\n+-gfa string,  input file # genome fasta. sequence file\n+-idx string, genome file index, file-prefix #(must be indexed by bowtie-build) The parameter\n+                string must be the prefix of the bowtie index. For instance, if\n+                the first indexed file is called \'h_sapiens_37_asm.1.ebwt\' then\n+                the prefix is \'h_sapiens_37_asm\'.##can be null\n+\n+-pre string,  input file #species specific microRNA precursor sequences\n+-mat string,  input file #species specific microRNA mature sequences\n+\n+-rfam string,  input file# rfam database file, microRNAs must not be contained in this file## if not define, rfam small RNA will not be count.\n+-idx2 string,  rfam file index, file-prefix #(must be indexed by bowtie-build) The parameter\n+                string must be the prefix of the bowtie index. For instance, if\n+                the first indexed file is called \'h_sapiens_37_asm.1.ebwt\' then\n+                the prefix is \'h_sapiens_37_asm\'.##can be null\n+\n+-D      If [-D] is specified,will discard rfam mapped reads(nead -rfam).\n+\n+-a string,  ADAPTER string. default is ATCTCGTATG.\n+-M int,    require minimum adapter alignment length of N. If less than N nucleotides aligned with the adapter - don\'t clip it. \n+-min int,  reads min length,default is 19.\n+-max int,  reads max length,default is 28.\n+\n+-mis [int]     number of allowed mismatches when mapping reads to precursors, default 0\n+-e [int]     number of nucleotides upstream of the mature sequence to consider, default 2\n+-f [int]     number of nucleotides downstream of the mature sequence to consider, default 5\n+-v <int>     report end-to-end hits w/ <=v mismatches; ignore qualities,default 0; used in rfam alignment\n+-r int       a read is allowed to map up to this number of positions in the genome,default is 25 \n+\n+-dis <int>   Maximal space between miRNA and miRNA* (200)\n+-flank <int>   Flank sequence length of miRNA precursor (10)\n+-mfe <folat> Maximal free energy allowed for a miRNA precursor (-20)\n+\n+-t int,    number of threads [1]\n+\n+-o output directory# absolute path\n+-h help\n+USAGE\n+exit(1);\n+}\n+\n'
b
diff -r 28ad3b598670 -r f008ab2cadc6 miRPlant.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/miRPlant.xml Wed Dec 03 02:03:27 2014 -0500
b
@@ -0,0 +1,89 @@
+<tool id="plant_microRNA_v1" name="miRPlant" veision="1.0.0">
+  <description>tool for plant microRNA analisis</description>
+
+  <requirements>
+ <requirement type="package" version="0.0.13">fastx_toolkit </requirement>
+    <requirement type="package" version="0.12.7">bowtie</requirement>
+    <requirement type="set_environment">SCRIPT_PATH</requirement>
+    <!--requirement type="package" version="3.0.1">R</requirement!-->
+ <requirement type="package" version="2.59">SVG</requirement>
+ <requirement type="package" version="2.1.8">ViennaRNA</requirement>
+  </requirements>
+
+  <!--command interpreter="perl">miPlant.pl -i $input -format $format -gfa $gfa -idx $index -pre $pre -mat $mat -rfam $rfam -idx2 $idx2 -D $D -a $a -M $M -min $min -max $max -mis $mis -e $e -f $f -v $v -r $r -dis $dis -flank $flank -mfe $mfe -t $t -o $output</command-->
+
+  <command interpreter="perl">miRPlant.pl 
+   ## Change this to accommodate the number of threads you have available.
+        -t \${GALAXY_SLOTS:-4}
+   ## Do or not delet rfam mapped tags
+    #if $params.delet_rfam == "yes":
+ -D 
+ #end if
+ -path \$SCRIPT_PATH
+
+    #for $j, $s in enumerate( $series )
+    ##rank_of_series=$j
+    -i ${s.input}
+    -tag ${s.tag}
+    #end for
+
+    -format $format -gfa $gfa -pre $pre -mat $mat -rfam $rfam  -a $a -M $mapnt -min $min -max $max -mis $mismatch -e $e -f $f -v $v -r $r -dis $dis -flank $flank -mfe $mfe > run.log
+  </command>
+
+  <inputs>
+
+   <repeat name="series" title="Series">
+     <param name="input" type="data" label="Raw data"/>
+     <param name="tag" type="text" data_ref="input" label="Sample name of raw data"/>
+   </repeat>
+
+ <conditional name="params">
+ <param name="delet_rfam" type="select" label="delet rfam mapped reads">
+   <option value="yes" selected="true">yes</option>
+   <option value="no">no</option>
+  </param>
+    </conditional> <!-- params -->
+
+ <!--param name="input" format="tabular"  type="data" label="input config file" /-->
+
+ <param name="format" type="select" lable="raw data format" multiple="false">
+   <option value="fastq">Raw data is fastq. format</option>
+   <option value="fasta">Raw data is fasta. format</option>
+ </param>
+
+ <param name="gfa"  type="data" label="genome sequence fasta file"/>
+ <!--param type="data" name="index" label="genome sequence bowtie index"/-->
+ <param name="mat" type="data" label="mature microRNA sequence file" />
+ <param name="pre" type="data" label="precursor microRNA sequence fie" />
+ <param name="rfam" type="data" label="rfam sequence file" />
+ <!--param type="data" name="idx2" label="rfam sequence bowtie index " -->
+ <param name="a" type="text" value="ATCTCGTATG" label="3' adapter sequence" />
+ <param name="mapnt" type="integer" value="8" label="minimum adapter map nts" />
+ <param name="min" type="integer" value="19" label="minimum microRNA length" />
+ <param name="max" type="integer" value="28" label="maximum microRNA length" />
+ <param name="mismatch" type="integer" value="0" label="number of allowed mismatches when mapping reads to precursors" />
+ <param name="e" type="integer" value="2" label="number of nucleotides upstream of the mature sequence to consider" />
+ <param name="f" type="integer" value="5" label="number of nucleotides downstream of the mature sequence to consider" />
+ <param name="v" type="integer" value="0" label="report end-to-end hits less than v mismatches"/>
+ <param name="r" type="integer" value="25" label="a read is allowed to map up to this number of positions in the genome" />
+ <param name="dis" type="integer" value="200" label="Maximal space between miRNA and miRNA*" />
+ <param name="flank" type="integer" value="10" label="Flank sequence length of miRNA precursor" />
+ <param name="mfe" type="float" value="-30" label="Maximal free energy allowed for a miRNA precursor" />
+  </inputs>
+
+  <outputs>
+   <data format="txt" name="known microRNA express list" from_work_dir="miRPlant_out/known_microRNA_express.txt" label="${tool.name} on ${on_string}: known microRNA express list"/>
+   <data format="txt" name="known microRNA express alignment" from_work_dir="miRPlant_out/known_microRNA_express.aln" label="${tool.name} on ${on_string}: known microRNA express alignment"/>
+   <data format="txt" name="known microRNA moRs result" from_work_dir="miRPlant_out/known_microRNA_express.moRs" label="${tool.name} on ${on_string}: known microRNA moRs result"/>
+   <data format="txt" name="known microRNA precursor file" from_work_dir="miRPlant_out/known_microRNA_precursor.fa" label="${tool.name} on ${on_string}: known microRNA precursor file"/>
+   <data format="txt" name="known microRNA mature file" from_work_dir="miRPlant_out/known_microRNA_mature.fa" label="${tool.name} on ${on_string}: known microRNA mature file"/>
+   <data format="txt" name="novel microRNA express list" from_work_dir="miRPlant_out/novel_microRNA_express.txt" label="${tool.name} on ${on_string}: novel microRNA express list"/>
+   <data format="txt" name="novel microRNA precursor file" from_work_dir="miRPlant_out/novel_microRNA_precursor.fa" label="${tool.name} on ${on_string}: novel microRNA precursor file"/>
+   <data format="txt" name="novel microRNA mature sequence file" from_work_dir="miRPlant_out/novel_microRNA_mature.fa" label="${tool.name} on ${on_string}: novel microRNA mature sequence file"/>
+   <data format="html" name="analysis result" from_work_dir="miRPlant_out/result.html" label="${tool.name} on ${on_string}: analysis result"/>
+  </outputs>
+
+ <help>
+
+ </help>
+ </tool>
b
diff -r 28ad3b598670 -r f008ab2cadc6 tool-data/bowtie_indices.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/bowtie_indices.loc.sample Wed Dec 03 02:03:27 2014 -0500
b
@@ -0,0 +1,37 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Bowtie indexed sequences data files. You will
+#need to create these data files and then create a bowtie_indices.loc
+#file similar to this one (store it in this directory) that points to
+#the directories in which those files are stored. The bowtie_indices.loc
+#file has this format (longer white space characters are TAB characters):
+#
+#<unique_build_id>   <dbkey>   <display_name>   <file_base_path>
+#
+#So, for example, if you had hg18 indexed stored in
+#/depot/data2/galaxy/bowtie/hg18/,
+#then the bowtie_indices.loc entry would look like this:
+#
+#hg18 hg18 hg18 /depot/data2/galaxy/bowtie/hg18/hg18
+#
+#and your /depot/data2/galaxy/bowtie/hg18/ directory
+#would contain hg18.*.ebwt files:
+#
+#-rw-r--r--  1 james    universe 830134 2005-09-13 10:12 hg18.1.ebwt
+#-rw-r--r--  1 james    universe 527388 2005-09-13 10:12 hg18.2.ebwt
+#-rw-r--r--  1 james    universe 269808 2005-09-13 10:12 hg18.3.ebwt
+#...etc...
+#
+#Your bowtie_indices.loc file should include an entry per line for each
+#index set you have stored. The "file" in the path does not actually
+#exist, but it is the prefix for the actual index files. For example:
+#
+#hg18canon hg18 hg18 Canonical /depot/data2/galaxy/bowtie/hg18/hg18canon
+#hg18full hg18 hg18 Full /depot/data2/galaxy/bowtie/hg18/hg18full
+#/orig/path/hg19 hg19 hg19 /depot/data2/galaxy/bowtie/hg19/hg19
+#...etc...
+#
+#Note that for backwards compatibility with workflows, the unique ID of
+#an entry must be the path that was in the original loc file, because that
+#is the value stored in the workflow for that parameter. That is why the
+#hg19 entry above looks odd. New genomes can be better-looking.
+#
b
diff -r 28ad3b598670 -r f008ab2cadc6 tool_data_table_conf.xml.sample
--- a/tool_data_table_conf.xml.sample Wed Dec 03 01:58:46 2014 -0500
+++ b/tool_data_table_conf.xml.sample Wed Dec 03 02:03:27 2014 -0500
b
@@ -1,6 +1,6 @@
 <!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
 <tables>
-    <!-- Locations of indexes in the Bowtie2 mapper format -->
+    <!-- Locations of indexes in the Bowtie mapper format -->
     <table name="bowtie_indexes" comment_char="#">
         <columns>value, dbkey, name, path</columns>
         <file path="tool-data/bowtie_indices.loc" />
b
diff -r 28ad3b598670 -r f008ab2cadc6 tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Wed Dec 03 02:03:27 2014 -0500
b
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="fastx_toolkit" version="0.0.13">
+        <repository changeset_revision="ec66ae4c269b" name="package_fastx_toolkit_0_0_13" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="bowtie" version="0.12.7">
+        <repository changeset_revision="9f9f38617a98" name="package_bowtie_0_12_7" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <set_environment version="1.0">
+        <environment_variable action="set_to" name="SCRIPT_PATH">$REPOSITORY_INSTALL_DIR</environment_variable>
+    </set_environment>
+ <!--package name="R" version="3.0.1">
+    <repository name="package_r_3_0_1" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu" />
+ </package!-->
+
+ <package name="ViennaRNA" version="2.1.8">
+    <install version="1.0">
+    <actions>
+      <action type="download_by_url">http://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-2.1.8.tar.gz</action>
+  <action type="shell_command">./configure --prefix=$INSTALL_DIR </action>
+  <action type="shell_command">make</action>
+  <action type="shell_command">make install</action>
+  <action type="set_environment">
+    <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
+  </action>
+    </actions>
+    </install>
+ </package>
+
+ <package name="SVG" version="2.59">
+    <install version="1.0">
+    <actions>
+      <action type="download_by_url">http://www.cpan.org/authors/id/S/SZ/SZABGAB/SVG-2.59.tar.gz</action>
+ <action type="make_directory">$INSTALL_DIR/lib/perl5</action>
+ <action type="shell_command">
+ perl Makefile.PL INSTALL_BASE=$INSTALL_DIR &amp;&amp;
+ make &amp;&amp;
+ make install 
+ </action>
+ <action type="set_environment">
+ <environment_variable action="append_to" name="PERL5LIB">$INSTALL_DIR/lib/perl5/:$INSTALL_DIR/lib/perl5/x86_64-linux-gnu-thread-multi/</environment_variable>
+ </action>
+    </actions>
+    </install>
+ </package>
+
+
+</tool_dependency>