Skip to main content

Toolkit for analysis of chimeric (hybrid) RNA sequence data.

Project description

GitHub release (latest by date including pre-releases) PyPI Package Version Bioconda Release Hybkit Downloads on Bioconda Docker Image Version Circle-CI Build Status Documentation Status Coveralls Coverage PyPI - Python Version Manuscript DOI, Journal Bioinformatics GNU GPLv3+ License
Welcome to hybkit, a toolkit for analysis of hyb-format chimeric (hybrid) RNA sequence data defined with the Hyb software package by Travis et al. (Methods 2014). This genomic data-type is generated from RNA proximity-ligation and ribonomics techniques such as Crosslinking, Ligation, and Sequencing of Hybrids (CLASH; Helwak et al. (Cell 2013)) and quick CLASH (qCLASH; Gay et al. (J. Virol. 2018)).
This software is available via Github, at http://www.github.com/RenneLab/hybkit .
Full project documentation is available at hybkit’s ReadTheDocs.
Project components:
  1. hybkit toolkit of command-line utilities for manipulating, analyzing, and plotting hyb-format data.

  2. The hybkit python API, an extendable documented codebase for creation of custom analyses of hyb-format data.

  3. Integrated analysis of predicted secondary structure (fold) information for the API and command-line utilities.

  4. Example analyses for publicly available qCLASH hybrid sequence data implemented in each of the command-line scripts and hybkit Python API.

Hybkit Toolkit:

The hybkit toolkit includes several command-line utilities for manipulation of hyb-format data:

Utility

Description

hyb_check

Parse hyb (and fold) files and check for errors

hyb_eval

Evaluate hyb (and fold) records to identify / assign segment types and miRNAs using custom criteria

hyb_filter

Filter hyb (and fold) records to a specific custom subset

hyb_analyze

Perform an energy, type, miRNA, target, or fold analysis on hyb (and fold) files and plot results

These scripts are used on the command line with hyb (and associated “vienna” or “CT”) files. For example, to filter a hyb and corresponding vienna file to contain only hybrids with a sequence identifier containing the string “kshv”:

Example:

$ hyb_filter -i my_hyb_file.hyb -f my_hyb_file.vienna --filter any_seg_contains kshv

Further detail on the usage of each script is provided in the hybkit Toolkit section of hybkit’s ReadTheDocs.

Hybkit API:

Hybkit provides a Python3 module with a documented API for interacting with records in hyb files and associated vienna or CT files. This capability was inspired by the BioPython Project. The primary utility is provided by a class for hyb records (HybRecord), a class for fold records (FoldRecord), and file-iterator classes (HybFile, ViennaFile, CTFile, HybFoldIter). Record attributes can be analyzed, set, and evaluated using included class methods.

For example, a workflow to print the identifiers of only sequences within a “.hyb” file that contain a miRNA can be performed as such:

#!/usr/bin/env python3
import hybkit
in_file = '/path/to/my_hyb_file.hyb'

# Open a hyb file as a HybFile Object:
with hybkit.HybFile.open(in_file, 'r') as hyb_file:

    # Return each line in a hyb file as a HybRecord object
    for hyb_record in hyb_file:

        # Analyze each record to assign segment types
        hyb_record.eval_types()

        # If the record contains a long noncoding RNA type, print the record identifier.
        if hyb_record.has_prop('any_seg_type_contains', 'lncRNA')
            print(hyb_record.id)

Further documentation on the hybkit API can be found in the hybkit API section of hybkit’s ReadTheDocs.

Example Analyses:

Hybkit provides several example analyses for hyb data using the utilities provided in the toolkit. These include:

Analysis

Description

Type/miRNA Analysis

Quantify sequence types and miRNA types in a hyb file

Target Analysis

Analyze targets of a set of miRNAs from a single experimental replicate

Grouped Target Analysis

Analyze and plot targets of a set of miRNAs from pooled experimental replicates

Fold Analysis

Analyze and plot predicted miRNA folding patterns in miRNA-containing hybrids

These analyses provide analysis results in both tabular and graph form. As an illustration, the example summary analysis includes the return of the contained hybrid sequence types as both a csv table and as a pie chart:

CSV Output

example_01_image

Further detail on each provided analysis can be found in the Example Analyses section of hybkit’s ReadTheDocs.

Installation:
Dependencies:
Via PyPI / Python PIP:

PyPI Package Version

The recommended installation method is via hybkit’s PyPI Package Index using python3 pip, which will automatically handle version control and dependency installation:

$ python3 -m pip install hybkit
Via Conda:

Bioconda Release Install with Bioconda

For users of conda, the hybkit package and dependencies are hosted on the the Bioconda channel, and can be installed using conda:

$ conda install -c bioconda hybkit
Via Docker/Singularity:

Docker Image Version

The hybkit package is also available as a Docker image and Singularity container, hosted via the BioContainers project on quay.io. To pull the image via docker:

$ docker pull quay.io/biocontainers/hybkit:0.3.3--pyhdfd78af_0

To pull the image via singularity:

$ singularity pull docker://quay.io/biocontainers/hybkit:0.3.3--pyhdfd78af_0
Manually Download and Install:

GitHub release (latest by date including pre-releases)

Use git to clone the project’s Github repository:

$ git clone git://github.com/RenneLab/hybkit

OR download the zipped package:

$ curl -OL https://github.com/RenneLab/hybkit/archive/master.zip
$ unzip master.zip

Then install using python setuptools:

$ python setup.py install

Further documentation on hybkit usage can be found in hybkit’s ReadTheDocs.

Setup Testing:

Hybkit provides a suite of unit tests to maintain stability of the API and script functionalities. To run the API test suite, install pytest and run the tests from the root directory of the hybkit package:

$ pip install pytest
$ pytest

Command-line scripts can be tested by running the auto_test.sh script in the auto_tests directory:

$ ./auto_tests/auto_test.sh
Copyright:
hybkit is a free, sharable, open-source project.
All source code and executable scripts contained within this package are considered part of the “hybkit” project and are distributed without any warranty or implied warranty under the GNU General Public License v3.0 or any later version, described in the “LICENSE” file.

Project details


Download files

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

Source Distribution

hybkit-0.3.6.tar.gz (27.9 MB view details)

Uploaded Source

Built Distribution

hybkit-0.3.6-py3-none-any.whl (28.0 MB view details)

Uploaded Python 3

File details

Details for the file hybkit-0.3.6.tar.gz.

File metadata

  • Download URL: hybkit-0.3.6.tar.gz
  • Upload date:
  • Size: 27.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for hybkit-0.3.6.tar.gz
Algorithm Hash digest
SHA256 e5bf5aef8097029f7393e9af4361137105e9cb46f726822ee3cd8041ce12f27e
MD5 40a8e175210fd97f220b69dbcac6a77d
BLAKE2b-256 8a82aa15bd79c45c5c1d43fe6e8fd5e5517e1d9c60d70af959f1005663131dc8

See more details on using hashes here.

File details

Details for the file hybkit-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: hybkit-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 28.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for hybkit-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3d578479e069d156b244f5d8ac4d13b62c210936c463f8910efe674257e15490
MD5 47d7c20ca2766b84e587adbe330fea1e
BLAKE2b-256 bbd98b661d9dd95f6c8890563a58752083a060c1c4eef6d34a437c754f5be1fc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page