Skip to main content

orpheum

Tests Linting codecov

What is orpheum?

Orpheum which used to be called sencha is a Python package for directly translating RNA-seq reads into coding protein sequence.

Installation

The package can be installed from PyPI using pip here:

pip install orpheum

Developmental install

To install this code and play around with the code locally, clone this github repository and use pip to install:

git clone https://github.com/czbiohub/orpheum.git
cd orpheum

# The "." means "install *this*, the folder where I am now"
pip install .

Usage

Extract likely protein-coding reads from sequencing data

A reference proteome must be supplied as the first argument.

orpheum translate reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

Save the "coding scores" to a csv or parquet file

The "coding score" of each read is calculated by translating each read in six frames, then is calculatating the Jaccard index between any of the six translated frames of the read and the peptide database. The final coding score is the maximum Jaccard index across all reading frames. If you'd like to see the coding scores for all reads, use the --csv flag or --parquet flag.

csv:

orpheum translate --csv coding_scores.csv reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

parquet:

orpheum translate --parquet coding_scores.parquet reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

Save the coding nucleotides to a fasta

By default, only the coding peptides are output. If you'd like to also output the underlying nucleotide sequence, then use the flag --coding-nucleotide-fasta

orpheum translate --coding-nucleotide-fasta coding_nucleotides.fasta reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

Save the non-coding nucleotides to a fasta

To see the sequence of reads which were deemed non-coding, use the flag --noncoding-nucleotide-fasta.

orpheum translate --noncoding-nucleotide-fasta noncoding_nucleotides.fasta reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

Save the low complexity nucleotides to a fasta

To see the sequence of reads found to have too low complexity of nucleotide sequence to evaluate, use the flag --low-complexity-nucleotide-fasta. Low complexity is determined by the same method as the read trimmer fastp in which we calculate what percentage of the sequence has consecutive runs of the same base, or mathematically, how often seq[i] = seq[i+1]. The default threshold is 0.3. As an example, the sequence CCCCCCCCCACCACCACCCCCCCCACCCCCCCCCCCCCCCCCCCCCCCCCCACCCCCCCACACACCCCCAACACCC would be considered low complexity. While this sequence has many nucleotide k-mers, it is likely a result of a sequencing error and we ignore it.

orpheum translate --low-complexity-nucleotide-fasta low_complexity_nucleotides.fasta reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

Save the low complexity peptides to a fasta

Even if the nucleotide sequence may pass the complexity filter, the peptide sequence may still be low complexity. As an example, all translated frames of the sequence CAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAGCAG would be considered low complexity, as it translates to either QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ (5'3' Frame 1), SSSSSSSSSSSSSSSSSSSSSSSSSSSSS (5'3' Frame 2), AAAAAAAAAAAAAAAAAAAAAAAAAAAAA (5'3' Frame 3 and 3'5' Frame 3), LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL (3'5' Frame 1), or CCCCCCCCCCCCCCCCCCCCCCCCCCCCC (3'5' Frame 2). As these sequences have few k-mers and are difficult to assess for how "coding" they are, we ignore them. Unlike for nucleotides where we look at runs of consecutive bases, we require the translated peptide to contain greater than (L - k + 1)/2 k-mers, where L is the length of the sequence and k is the k-mer size. To save the sequence of low-complexity peptides to a fasta, use the flag --low-complexity-peptides-fasta.

orpheum translate --low-complexity-peptides-fasta low_complexity_peptides.fasta reference-proteome.fa.gz *.fastq.gz > coding_peptides.fasta

History

0.1.0 (2019-04-10)

  • First release on PyPI.

1.0.0 (2020-04-28)

  • Sencha release on PyPI.

Metadata

Release files for orpheum 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orpheum 1.0.4
File Size Uploaded Provenance Actions
orpheum-1.0.4.tar.gz 1.6 MB Without provenance Details for orpheum-1.0.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for orpheum 1.0.4
File Interpreter ABI Platform Actions
orpheum-1.0.4-py2.py3-none-any.whl Python 3, Python 2 none any Details for orpheum-1.0.4-py2.py3-none-any.whl

Total release size: 1.6 MB

Release files / orpheum-1.0.4.tar.gz

Download URL orpheum-1.0.4.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
ee2574a5caf665396320636962d63a0310cd95d53a3d9e843df515c874124c3f
BLAKE2b-256 checksum
How to use checksums
ccf518d6704db6782f037e9c58c678ab59d5af71d94148bac322999c8bc7e8d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Release files / orpheum-1.0.4-py2.py3-none-any.whl

Download URL orpheum-1.0.4-py2.py3-none-any.whl
Size 48.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
67d1dc119ad26050d17de81a4a83e6ac35baa703a20484bc3f403d645415acb5
BLAKE2b-256 checksum
How to use checksums
204e874b2b4ab755ee224864936ef73dc500172722ad0f425cab846502d9e5cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Security for orpheum 1.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page