changeset 0:c386fe82db82

Initial commit, moving from test tool shed.
author matt-shirley
date Wed, 25 Sep 2013 21:00:05 -0400
parents
children da2dbe22f80b
files sra_tools-04cc8176e86f/datatypes_conf.xml sra_tools-04cc8176e86f/fastq_dump.xml sra_tools-04cc8176e86f/sam_dump.xml sra_tools-04cc8176e86f/sra.py sra_tools-04cc8176e86f/sra_pileup.xml sra_tools-04cc8176e86f/tool_dependencies.xml
diffstat 6 files changed, 365 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/datatypes_conf.xml	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<datatypes>
+  <datatype_files>
+    <datatype_file name="sra.py"/>
+  </datatype_files>
+  <registration>
+    <datatype extension="sra" type="galaxy.datatypes.sra:sra" display_in_upload="true"/>
+  </registration>
+</datatypes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/fastq_dump.xml	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,123 @@
+<tool id="fastq_dump" name="Extract reads" version="1.1.1">
+  <description> from NCBI SRA.</description>
+  <command>
+    fastq-dump --log-level fatal 
+    #if $input.input_select == "file":
+      --accession '${input.file.name}' 
+    #else:
+      --accession $input.accession 
+    #end if
+    --defline-seq '@\$sn[_\$rn]/\$ri' 
+    --stdout 
+    #if $split == "yes":
+      --split-spot
+    #end if
+    #if str( $alignments ) == "aligned":
+      --aligned
+    #end if
+    #if str( $alignments ) == "unaligned":
+      --unaligned
+    #end if
+    #if str( $minID ) != "":
+      --minSpotId $minID 
+    #end if
+    #if str( $maxID ) != "":
+      --maxSpotId $maxID 
+    #end if
+    #if str( $minlen ) != "":
+      --minReadLen $minlen 
+    #end if
+    #if str( $readfilter ) != "":
+      --read-filter $readfilter 
+    #end if
+    #if str( $region ) != "":
+      --aligned-region $region
+    #end if
+    #if str( $spotgroups ) != "":
+      --spot-groups $spotgroups
+    #end if
+    #if str( $matepairDist ) != "":
+      --matepair-distance $matepairDist
+    #end if
+    #if $clip == "yes":
+      --clip
+    #end if
+    #if str( $outputformat ) == "fasta":
+      --fasta
+    #end if
+    #if $input.input_select=="file":
+      $input.file
+    #else:
+        $input.accession 
+    #end if
+    > $output
+  </command>
+  <version_string>fastq-dump --version</version_string>
+  <inputs>
+    <conditional name="input">
+      <param name="input_select" type="select" label="select input type">
+        <option value="accession_number">SRR accession</option>
+        <option value="file">SRA archive in current history</option>
+      </param>
+      <when value="file">
+    <param format="sra" name="file" type="data" label="sra archive"/>
+      </when>
+      <when value="accession_number">
+    <param format="text" name="accession" type="text" label="accession"/>
+      </when>
+    </conditional>
+    <param format="text" name="minID" type="text" label="minimum spot ID"/>
+    <param format="text" name="maxID" type="text" label="maximum spot ID"/>
+    <param format="text" name="minlen" type="text" label="minimum read length"/>
+    <param format="text" name="split" type="select" value="yes">
+      <label>split spot by read pairs</label>
+      <option value="yes">Yes</option>
+      <option value="no">No</option>
+    </param>
+    <param format="text" name="alignments" type="select" value="both">
+      <label>aligned or unaligned reads</label>
+      <option value="both">both</option>
+      <option value="aligned">aligned only</option>
+        <option value="unaligned">unaligned only</option>
+    </param>
+    <param format="text" name="region" type="text" label="aligned region"/>
+    <param format="text" name="matepairDist" type="text" label="mate-pair distance (from-to|unknown)"/>
+    <param format="text" name="readfilter" type="select" value="">
+      <label>filter by value</label>
+      <option value="">None</option>
+      <option value="pass">pass</option>
+      <option value="reject">reject</option>
+      <option value="criteria">criteria</option>
+      <option value="redacted">redacted</option>
+    </param>
+    <param name="outputformat" type="select" label="select output format">
+      <option value="fastqsanger">fastq</option>
+      <option value="fasta">fasta</option>
+    </param>
+    <param format="text" name="spotgroups" type="text" label="filter by spot-groups"/>
+    <param format="text" name="clip" type="select" value="no">
+      <label>apply left and right clips</label>
+      <option value="no">No</option>
+      <option value="yes">Yes</option>
+    </param>
+  </inputs>
+  <outputs>
+    <data format="fastq" name="output">
+        <change_format>
+            <when input="outputformat" value="fasta" format="fasta" />
+        </change_format>
+    </data>
+  </outputs>
+  <stdio>
+    <exit_code range="127" level="fatal" description="Could not locate fastq-dump binary"/>
+  </stdio>
+  <requirements>
+    <requirement type="package" version="2.3.3-3">sra_toolkit</requirement>
+  </requirements>
+  <help>
+    This tool extracts reads from SRA archives using fastq-dump. 
+    Browse the NCBI SRA for SRR accessions at http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=studies. 
+    The fastq-dump program is developed at NCBI, and is available at: http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software.
+    Contact Matt Shirley at mdshw5@gmail.com for support and bug reports.
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/sam_dump.xml	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,99 @@
+<tool id="sam_dump" name="Extract reads" version="1.1.1">
+  <description> in SAM format from NCBI SRA.</description>
+  <command>
+    sam-dump --log-level fatal 
+    #if str( $region ) != "":
+      --aligned-region $region
+    #end if
+    #if str( $matepairDist ) != "":
+      --matepair-distance $matepairDist
+    #end if
+    #if str( $minMapq ) != "":
+      --minmapq $minMapq
+    #end if
+    #if $header == "yes":
+      --header
+    #else:
+      --no-header 
+    #end if
+    #if str( $alignments ) == "both":
+      --unaligned
+    #end if
+    #if str( $alignments ) == "unaligned":
+      --unaligned-spots-only
+    #end if
+    #if (str( $primary ) == "yes") and (str ( $alignments != "unaligned") ):
+      --primary
+    #end if
+    #if str( $fastq ) == "yes":
+      --fastq
+    #end if
+    #if $input.input_select == "file":
+      $input.file
+    #elif $input.input_select == "accession_number":
+      $input.accession 
+    #elif $input.input_select == "text":
+      `cat $input.text`
+    #end if
+    > $output
+  </command>  
+  <version_string>sam-dump --version</version_string>
+  <inputs>
+    <conditional name="input">
+      <param name="input_select" type="select" label="select input type">
+        <option value="accession_number">SRR accession</option>
+        <option value="file">SRA archive in current history</option>
+        <option value="text">text file containing SRR accession</option>
+      </param>
+      <when value="file">
+        <param format="sra" name="file" type="data" label="sra archive"/>
+      </when>
+      <when value="accession_number">
+        <param format="text" name="accession" type="text" label="accession"/>
+      </when>
+      <when value="text">
+        <param format="txt" name="text" type="data" label="text file"/>
+      </when>
+    </conditional>
+    <param format="text" name="region" type="text" label="aligned region"/>
+    <param format="text" name="matepairDist" type="text" label="mate-pair distance (from-to|unknown)"/>
+    <param format="text" name="header" type="select" value="yes">
+      <label>output SAM header</label>
+      <option value="yes">Yes</option>
+      <option value="no">No</option>
+    </param>
+    <param format="text" name="alignments" type="select" value="both">
+      <label>aligned or unaligned reads</label>
+      <option value="both">both</option>
+      <option value="aligned">aligned only</option>
+        <option value="unaligned">unaligned only</option>
+    </param>
+    <param format="text" name="primary" type="select" value="no">
+      <label>only primary aligments</label>
+      <option value="no">No</option>
+      <option value="yes">Yes</option>
+    </param>
+    <param format="text" name="minMapq" type="text" label="minimum mapping quality"/>
+    <param format="text" name="fastq" type="select" value="no">
+      <label>output fastq</label>
+      <option value="no">No</option>
+      <option value="yes">Yes</option>
+    </param>
+  </inputs>
+  <outputs>
+    <data name="output" format="sam">
+      <change_format>
+        <when input="fastq" value="yes" format="fastq"/>
+      </change_format>
+    </data>
+  </outputs>
+  <requirements>
+    <requirement type="package" version="2.3.3-3">sra_toolkit</requirement>
+  </requirements>
+  <help>
+    This tool extracts reads from sra archives using sam-dump. 
+    Browse the NCBI SRA for SRR accessions at http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=studies. 
+    The sam-dump program is developed at NCBI, and is available at: http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software.
+    Contact Matt Shirley at mdshw5@gmail.com for support and bug reports.
+  </help>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/sra.py	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,46 @@
+"""
+NCBI sra class
+"""
+import logging
+import binascii
+from galaxy.datatypes.data import *
+from galaxy.datatypes.sniff import *
+from galaxy.datatypes.binary import *
+from galaxy.datatypes.metadata import *
+
+log = logging.getLogger(__name__)
+
+class sra( Binary ):
+    """ Sequence Read Archive (SRA) """
+    file_ext = 'sra'
+
+    def __init__( self, **kwd ):
+        Binary.__init__( self, **kwd )
+    def sniff( self, filename ):
+        """ The first 8 bytes of any NCBI sra file is 'NCIB.sra', and the file is binary. EBI and DDBJ files may differ, though EBI and DDBJ 
+        submissions through NCBI (ERR and DRR accessions) read 'NCBI.sra'.
+        For details about the format, see http://www.ncbi.nlm.nih.gov/books/n/helpsra/SRA_Overview_BK/#SRA_Overview_BK.4_SRA_Data_Structure 
+        """
+        try:
+            header = open(filename).read(8)
+            if binascii.b2a_hex(header) == binascii.hexlify('NCBI.sra'):
+                return True
+            else:
+                return False
+        except:
+            return False
+    def set_peek(self, dataset, is_multi_byte=False):
+        if not dataset.dataset.purged:
+            dataset.peek  = 'Binary sra file'
+            dataset.blurb = data.nice_size(dataset.get_size())
+        else:
+            dataset.peek = 'file does not exist'
+            dataset.blurb = 'file purged from disk'
+    def display_peek(self, dataset):
+        try:
+            return dataset.peek
+        except:
+            return 'Binary sra file (%s)' % ( data.nice_size(dataset.get_size()))
+
+if hasattr(Binary, 'register_sniffable_binary_format'):
+    Binary.register_sniffable_binary_format('sra', 'sra', sra)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/sra_pileup.xml	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,51 @@
+<tool id="sra_pileup" name="Generate pileup format" version="1.1.1">
+  <description> from NCBI sra.</description>
+  <command>sra-pileup --log-level fatal 
+    #if str( $region ) != "":
+      --aligned-region $region
+    #end if
+    #if str( $minMapq ) != "":
+      --minmapq $minMapq
+    #end if
+    #if $input.input_select == "file":
+      $input.file
+    #elif $input.input_select == "accession_number":
+      $input.accession 
+    #elif $input.input_select == "text":
+      `cat $input.text`
+    #end if
+    > $output</command>
+  <version_string>sra-pileup --version</version_string>
+  <inputs>
+    <conditional name="input">
+      <param name="input_select" type="select" label="select input type">
+        <option value="accession_number">SRR accession</option>
+        <option value="file">SRA archive in current history</option>
+        <option value="text">text file containing SRR accession</option>
+      </param>
+      <when value="file">
+        <param format="sra" name="file" type="data" label="sra archive"/>
+      </when>
+      <when value="accession_number">
+        <param format="text" name="accession" type="text" label="accession"/>
+      </when>
+      <when value="text">
+        <param format="txt" name="text" type="data" label="text file"/>
+      </when>
+    </conditional>
+    <param format="text" name="region" type="text" label="aligned region"/>
+    <param format="text" name="minMapq" type="text" label="minimum mapping quality"/>
+  </inputs>
+  <outputs>
+    <data format="pileup" name="output"/>
+  </outputs>
+  <requirements>
+    <requirement type="package" version="2.3.3-3">sra_toolkit</requirement>
+  </requirements>
+  <help>
+    This tool produces pileup format from sra archives using sra-pileup. 
+    Browse the NCBI SRA for SRR accessions at http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=studies. 
+    The sra-pileup program is developed at NCBI, and is available at: http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software.
+    Contact Matt Shirley at mdshw5@gmail.com for support and bug reports.
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sra_tools-04cc8176e86f/tool_dependencies.xml	Wed Sep 25 21:00:05 2013 -0400
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="sra_toolkit" version="2.3.3-3">
+    <install version="1.0">
+      <actions>
+        <action type="download_by_url">http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.3.3-3/sra_sdk-2.3.3-3.tar.gz</action>
+        <action type="shell_command">make release</action>
+        <action type="shell_command">make static</action>
+        <action type="shell_command">make</action>
+        <action type="make_directory">$INSTALL_DIR/bin</action>	
+        <action type="make_directory">$INSTALL_DIR/ncbi</action>	
+        <action type="make_directory">$INSTALL_DIR/ncbi/public</action>	
+        <action type="shell_command">sed -i -e "s|\$(HOME)|$INSTALL_DIR|g" -e "s|cache-enabled = \"true\"|cache-enabled = \"false\"|" bin64/ncbi/default.kfg</action>
+        <action type="shell_command">cp --recursive --dereference bin64/* $INSTALL_DIR/bin</action>
+        <action type="set_environment"><environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable></action>
+      </actions>
+    </install>
+    <readme>Tools from NCBI SRA Toolkit for extracting FASTQ and SAM format reads from SRA format archives. 
+This software release was designed to run under Linux, MacOSX operating systems on Intel x86-compatible 64 bit architectures. 
+When running on Amazon EC2, be sure to keep in mind the size limitation of EBS storage devices when requesting a 
+download of a large SRA data set.
+
+Build Requirements:
+  ar 
+  bash
+  make
+  gcc, g++
+  libxml2
+  libcurl4
+  zlib
+  
+On a debian based Linux OS use:
+
+  apt-get install build-essential libxml2-dev libcurl4-openssl-dev zlib-dev
+    </readme>
+  </package>
+</tool_dependency>