# HG changeset patch # User lparsons # Date 1434991350 14400 # Node ID 737cda668bdd550b560c1120bd7e15ca97102670 # Parent 3102bfcac0d63539e6647c8ecd1d5c5426b11707 planemo upload for repository https://github.com/lparsons/galaxy_tools/tree/master/tools/htseq_count commit 7ed7ce73afea50d212c9470fd3b98a232e312502 diff -r 3102bfcac0d6 -r 737cda668bdd README.md --- a/README.md Fri Apr 11 15:54:58 2014 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -htseq-count wrapper for Galaxy -============================== - -Galaxy wrapper for -[htseq-count](http://www-huber.embl.de/users/anders/HTSeq/doc/count.html) -script from python -[HTSeq](http://www-huber.embl.de/users/anders/HTSeq/doc/index.html) package. - -Installation ------------- - -Installation directly from the [Galaxy -Toolshed](http://toolshed.g2.bx.psu.edu/view/lparsons/htseq_count) is -recommended. - -Development ------------ - -Repository-Maintainer: Lance Parsons - -Repository-Development: - - -License -------- - -Copyright (c) 2012-2014, Lance R. Parsons -All rights reserved. - -Licensed under the BSD 2-Clause License: - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -r 3102bfcac0d6 -r 737cda668bdd README.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.rst Mon Jun 22 12:42:30 2015 -0400 @@ -0,0 +1,49 @@ +htseq-count wrapper for Galaxy +============================== + +Galaxy wrapper for +`htseq-count `_ +script from python +`HTSeq `_ package. + +Installation +------------ + +Installation directly from the `Galaxy Toolshed `_ is +recommended. + +Development +----------- + +Repository-Maintainer: Lance Parsons + +Repository-Development: `https://bitbucket.org/lance_parsons/htseq_count_galaxy_wrapper `_ + +License +------- + +Copyright (c) 2012-2014, Lance R. Parsons +All rights reserved. + +Licensed under the BSD 2-Clause License: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -r 3102bfcac0d6 -r 737cda668bdd fabfile.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fabfile.py Mon Jun 22 12:42:30 2015 -0400 @@ -0,0 +1,26 @@ +from fabric.api import local +from fabric.operations import prompt +import os + + +def package(): + ''' + Pacakge for upload to toolshed + packaging 'test' version (default) uses local directory + otherwise, specify a mercurial tag to package + ''' + package_dir = 'package' + base_filename = os.path.join(package_dir, 'htseq-count') + version = prompt("Enter version number for package [test]:") + revision_option = '' + if version != '': + revision_option = '-r "%s"' % version + else: + version = 'test' + version_filename = '%s_%s.tar.gz' % (base_filename, version) + local('mkdir -p %s' % package_dir) + local('rm -f %s' % version_filename) + if version == 'test': + local('tar czvf %s --exclude "fabfile.*" --exclude "%s" --exclude ".hg*" --exclude ".DS_Store" --exclude "*.pyc" --exclude "*.swp" *' % (version_filename, package_dir)) + else: + local('hg archive -t tgz %s -X "fabfile.*" -X "package" -X ".hg*" -p . "%s"' % (revision_option, version_filename)) diff -r 3102bfcac0d6 -r 737cda668bdd htseq-count.xml --- a/htseq-count.xml Fri Apr 11 15:54:58 2014 -0400 +++ b/htseq-count.xml Mon Jun 22 12:42:30 2015 -0400 @@ -1,12 +1,23 @@ - Count aligned reads in a BAM file that overlap features in a GFF file - htseq-count -h | grep version | sed 's/^\(.*\)*\(version .*\)\./\2/' - numpy htseq samtools pysam + + + + + + + + + + + + htseq-count -h | grep version | sed 's/^\(.*\)*\(version .*\)\./\2/' + ##set up input files #set $reference_fasta_filename = "localref.fa" @@ -18,23 +29,24 @@ #set $reference_fasta_filename = str( $samout_conditional.reference_source.ref_file.fields.path ) #end if #end if - htseq-count + htseq-count --format=$samfile.extension --order=pos - --mode=$mode - --stranded=$stranded - --minaqual=$minaqual - --type=$featuretype - --idattr=$idattr + --mode=$mode + --stranded=$stranded + --minaqual=$minaqual + --type=$featuretype + --idattr=$idattr #if $samout_conditional.samout: --samout=$__new_file_path__/${samoutfile.id}_tmp #end if $samfile - $gfffile + $gfffile | awk '{if ($1 ~ "no_feature|ambiguous|too_low_aQual|not_aligned|alignment_not_unique") print $0 | "cat 1>&2"; else print $0}' > $counts 2>$othercounts #if $samout_conditional.samout: && samtools view -Su -t ${reference_fasta_filename}.fai $__new_file_path__/${samoutfile.id}_tmp | samtools sort -o - sorted > $samoutfile #end if + @@ -63,7 +75,7 @@ Write out all SAM alignment records into an output BAM file, annotating each line with its assignment to a feature or a special counter (as an optional field with tag ‘XF’). - + @@ -93,16 +105,6 @@ - - - - - - - - - - @@ -145,22 +147,22 @@ -------- This tool takes an alignment file in SAM or BAM format and feature file in GFF format -and calculates the number of reads mapping to each feature. It uses the *htseq-count* +and calculates the number of reads mapping to each feature. It uses the *htseq-count* script that is part of the HTSeq python module. See http://www-huber.embl.de/users/anders/HTSeq/doc/count.html for details. A feature is an interval (i.e., a range of positions) on a chromosome or a union of -such intervals. In the case of RNA-Seq, the features are typically genes, where -each gene is considered here as the union of all its exons. One may also consider -each exon as a feature, e.g., in order to check for alternative splicing. For -comparative ChIP-Seq, the features might be binding regions from a pre-determined +such intervals. In the case of RNA-Seq, the features are typically genes, where +each gene is considered here as the union of all its exons. One may also consider +each exon as a feature, e.g., in order to check for alternative splicing. For +comparative ChIP-Seq, the features might be binding regions from a pre-determined list. Overlap Modes ------------- -Special care must be taken to decide how to deal with reads that overlap more than one feature. +Special care must be taken to decide how to deal with reads that overlap more than one feature. The htseq-count script allows to choose between three modes: *union*, *intersection-strict*, and *intersection-nonempty*. @@ -231,4 +233,29 @@ Laboratory (EMBL). (c) 2010. Released under the terms of the GNU General Public License v3. Part of the 'HTSeq' framework. + + +@article{anders_htseqpython_2015, + title = {{HTSeq}—a {Python} framework to work with high-throughput sequencing data}, + volume = {31}, + issn = {1367-4803, 1460-2059}, + url = {http://bioinformatics.oxfordjournals.org/content/31/2/166}, + doi = {10.1093/bioinformatics/btu638}, + abstract = {Motivation: A large choice of tools exists for many standard tasks in the analysis of high-throughput sequencing (HTS) data. However, once a project deviates from standard workflows, custom scripts are needed. +Results: We present HTSeq, a Python library to facilitate the rapid development of such scripts. HTSeq offers parsers for many common data formats in HTS projects, as well as classes to represent data, such as genomic coordinates, sequences, sequencing reads, alignments, gene model information and variant calls, and provides data structures that allow for querying via genomic coordinates. We also present htseq-count, a tool developed with HTSeq that preprocesses RNA-Seq data for differential expression analysis by counting the overlap of reads with genes. +Availability and implementation: HTSeq is released as an open-source software under the GNU General Public Licence and available from http://www-huber.embl.de/HTSeq or from the Python Package Index at https://pypi.python.org/pypi/HTSeq. +Contact: sanders\{at\}fs.tum.de}, + language = {en}, + number = {2}, + urldate = {2015-04-21}, + journal = {Bioinformatics}, + author = {Anders, Simon and Pyl, Paul Theodor and Huber, Wolfgang}, + month = jan, + year = {2015}, + pmid = {25260700}, + pages = {166--169}, + file = {Full Text PDF:/Users/lparsons/Library/Application Support/Firefox/Profiles/thd2t4je.default/zotero/storage/84XQB8V6/Anders et al. - 2015 - HTSeq—a Python framework to work with high-through.pdf:application/pdf;Snapshot:/Users/lparsons/Library/Application Support/Firefox/Profiles/thd2t4je.default/zotero/storage/JKUAUCKB/166.html:text/html} +} + + diff -r 3102bfcac0d6 -r 737cda668bdd test-data/htseq-test-paired_counts.tsv --- a/test-data/htseq-test-paired_counts.tsv Fri Apr 11 15:54:58 2014 -0400 +++ b/test-data/htseq-test-paired_counts.tsv Mon Jun 22 12:42:30 2015 -0400 @@ -2,8 +2,8 @@ YAL001C 12 YAL002W 6 YAL003W 5 -YAL004W 3 -YAL005C 5 +YAL004W 2 +YAL005C 2 YAL007C 1 YAL008W 0 YAL009W 2 @@ -76,11 +76,11 @@ YAL064C-A 0 YAL064W 0 YAL064W-B 0 -YAL065C 2 +YAL065C 1 YAL066W 0 YAL067C 8 YAL067W-A 1 -YAL068C 1 +YAL068C 0 YAL068W-A 0 YAL069W 0 YAR002C-A 0 @@ -88,7 +88,7 @@ YAR003W 4 YAR007C 7 YAR008W 0 -YAR009C 1 +YAR009C 0 YAR010C 0 YAR014C 4 YAR015W 4 @@ -101,7 +101,7 @@ YAR028W 3 YAR029W 0 YAR030C 2 -YAR031W 4 +YAR031W 3 YAR033W 0 YAR035C-A 0 YAR035W 3 @@ -109,15 +109,15 @@ YAR047C 0 YAR050W 4 YAR053W 0 -YAR060C 2 +YAR060C 0 YAR061W 0 -YAR062W 2 +YAR062W 1 YAR064W 1 YAR066W 2 -YAR068W 2 -YAR069C 1 +YAR068W 1 +YAR069C 0 YAR070C 0 -YAR071W 4 +YAR071W 2 YAR073W 1 YAR075W 0 snR18 0 diff -r 3102bfcac0d6 -r 737cda668bdd test-data/htseq-test-paired_othercounts.tsv --- a/test-data/htseq-test-paired_othercounts.tsv Fri Apr 11 15:54:58 2014 -0400 +++ b/test-data/htseq-test-paired_othercounts.tsv Mon Jun 22 12:42:30 2015 -0400 @@ -1,5 +1,5 @@ -_feature 755 -__ambiguous 0 -__too_low_aQual 96 +__no_feature 480 +__ambiguous 1 +__too_low_aQual 68 __not_aligned 0 __alignment_not_unique 0 diff -r 3102bfcac0d6 -r 737cda668bdd tool_dependencies.xml --- a/tool_dependencies.xml Fri Apr 11 15:54:58 2014 -0400 +++ b/tool_dependencies.xml Mon Jun 22 12:42:30 2015 -0400 @@ -1,40 +1,16 @@ - - - - - + - + - - - https://pypi.python.org/packages/source/H/HTSeq/HTSeq-0.6.1.tar.gz - - - - - - - $INSTALL_DIR/lib/python - $INSTALL_DIR/lib64/python - export PYTHONPATH=$PYTHONPATH:$INSTALL_DIR/lib/python:$INSTALL_DIR/lib64/python && python setup.py install --home $INSTALL_DIR --install-scripts $INSTALL_DIR/bin - - $INSTALL_DIR/lib/python:$INSTALL_DIR/lib64/python - $INSTALL_DIR/bin - - - - - Installation of HTSeq requires Python 2.5+ (does not yet work with Python 3), and the Nympy Python package. - +