Skip to main content

A cli for running multiple pbs/qsub jobs with HTSeq's htseq-count script on a cluster.

Project description

[![Build Status](](

# htseq-count-cluster

A cli wrapper for running [htseq]('s `htseq-count` on a cluster.

View [documentation](

## Install

`pip install HTSeqCountCluster`

## Features

- For use with large datasets (we've previously used a dataset of 120 different human samples)
- For use with SGE/SGI cluster systems
- Submits multiple jobs
- Command line interface/script
- Merges counts files into one counts table/csv file
- Uses `accepted_hits.bam` file output of `tophat`

### Examples

#### Run htseq-count-cluster

After generating bam output files from tophat, instead of using HTSeq's htseq count, you
can use our `htseq-count-cluster` script. This script is intended for use with
clusters that are using pbs (qsub) for job monitoring.

htseq-count-cluster -p path/to/bam-files/ -f samples.csv -g genes.gtf -o path/to/cluster-output/

| Argument | Description | Required |
| `-p` | This is the path of your .bam files. Presently, this script looks for a folder that is the sample name and searches for an accepted_hits.bam file (tophat output). | Yes |
| `-i` | You should have a csv file list of your samples or folder names (no header). | Yes |
| `-g` | This should be the path to your genes.gtf file. | Yes |
| `-o` | This should be an existing directory for your output counts files. | Yes |
| `-e` |

This script uses logzero so there will be color coded logging information to your shell.

A common linux practice is to use `screen` to create a new shell and run a program
so that if it does produce output to the stdout/shell, the user can exit that particular
shell without the program ending and utilize another shell.

##### Help message output for `htseq-count-cluster`

usage: htseq-count-cluster [-h] -p INPATH -f INFILE -g GTF -o OUTPATH
[-e EMAIL]

This is a command line wrapper around htseq-count.

optional arguments:
-h, --help show this help message and exit
-p INPATH, --inpath INPATH
Path of your samples/sample folders.
-f INFILE, --infile INFILE
Name or path to your input csv file.
-g GTF, --gtf GTF Name or path to your gtf/gff file.
-o OUTPATH, --outpath OUTPATH
Directory of your output counts file. The counts file
will be named.
-e EMAIL, --email EMAIL
Email address to send script completion to.

*Ensure that htseq-count is in your path.


#### Merge output counts files

In order to prep your data for `DESeq2`, `limma` or `edgeR`, it's best to have 1 merged
counts file instead of multiple files produced from the `htseq-count-cluster` script. We offer this
as a standalone script as it may be useful to keep those files separate.

merge-counts -d path/to/cluster-output/

##### Help message for `merge-counts`

usage: merge-counts [-h] -d DIRECTORY

Merge multiple counts tables into 1 counts .csv file.

Your output file will be named: merged_counts_table.csv

optional arguments:
-h, --help show this help message and exit
Path to folder of counts files.

## ToDo

- [ ] Monitor jobs.
- [ ] Enhance wrapper input for other use cases.
- [ ] Add example data.

## Maintainers

Shaurita Hutchins | [@sdhutchins]( | [✉](
Rob Gilmore | [@grabear]( | [✉](

## Help

Please feel free to [open an issue]( if you have a question/feedback/problem
or [submit a pull request]( to add a feature/refactor/etc. to this project.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for HTSeqCountCluster, version 1.3
Filename, size File type Python version Upload date Hashes
Filename, size HTSeqCountCluster-1.3-py3-none-any.whl (16.0 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page