circtools

circtools: a modular, python-based framework for circRNA-related tools that unifies several functionalities in a single, command line driven software.

https://github.com/jakobilab/circtools

Science Score: 20.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: nature.com, zenodo.org
  • Committers with academic emails
    4 of 9 committers (44.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

circtools: a modular, python-based framework for circRNA-related tools that unifies several functionalities in a single, command line driven software.

Basic Info
  • Host: GitHub
  • Owner: jakobilab
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: http://circ.tools
  • Size: 1.07 GB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 4
  • Open Issues: 5
  • Releases: 5
Fork of dieterich-lab/circtools
Created about 4 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License Code of conduct

README.rst

**circtools**
======================================================================

**a one-stop software solution for circular RNA research**

.. figure:: https://raw.githubusercontent.com/jakobilab/circtools/master/docs/img/circtools_200px.png
   :alt: circtools

|docs| |docker| |zenodo| |downloads| |pypi|

Introduction
-------------

Circular RNAs (circRNAs) originate through back-splicing events from linear primary transcripts, are resistant to exonucleases, typically not polyadenylated, and have been shown to be highly specific for cell type and developmental stage. Although few circular RNA molecules have been shown to exhibit miRNA sponge function, for the vast majority of circRNAs however, their function is yet to be determined.

The prediction of circular RNAs is a multi-stage bioinformatics process starting with raw sequencing data and usually ending with a list of potential circRNA candidates which, depending on tissue and condition may contain hundreds to thousands of potential circRNAs. While there already exist a number of tools for the prediction process (e.g. `DCC `__ and `CircTest `__), publicly available downstream analysis tools are rare.

We developed **circtools**, a modular, Python3-based framework for circRNA-related tools that unifies several functionalities in single command line driven software. The command line follows the `circtools subcommand` standard that is employed in samtools or bedtools. Currently, circtools includes modules for detecting and reconstructing circRNAs,
a quick check of circRNA mapping results, RBP enrichment screenings, circRNA primer design, statistical testing, and an exon usage module.



Documentation
-------------

Click `here `__ to access the complete documentation on Read the Docs.


Installation
------------

Via docker [NEW in 2.0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The latest circtools docker version will be downloaded directly from GitHub. The container contains `all` dependencies required to run `circtools` except STAR and Bowtie.

.. code-block:: console

    docker pull ghcr.io/jakobilab/circtools:master

An bash alias to call circtools "natively" and skip the unwieldy full docker command is recommended:

.. code-block:: console

    alias circtools='docker run --rm -v "`pwd`":/host_rel/ -v /:/host_os/ ghcr.io/jakobilab/circtools:master'

This line can be added to the `.bashrc` or `.profile` file to be automatically loaded after login.


Via pip
~~~~~~~~~~~~~~~


The ``circtools`` package is written in Python 3 (supporting Python 3.8 - 3.13). It requires only a small number of external dependencies, namely standard bioinformatics tools:

-  `bedtools (>= 2.27.1) `__
   [RBP enrichment module, installed automatically]
-  `R (>= 4.0) `__
   [Data visualization and data processing]

Installation is managed through ``pip3 install circtools`` or ``python3 setup.py
install`` when installed from the cloned GitHub repository. No sudo access is
required if the installation is executed in an virtual environment which will install the
package in a user-writeable folder. The binaries should be installed
to ``/home/$user/.local/bin/`` in case of Debian-based systems.

``circtools`` was developed and tested on Debian Bookworm, but should also
run with any other distribution.

The installation can be performed directly from PyPi:

.. code-block:: console

    # create virtual environment
    python3 -m venv circtools

    # activate virtual environment
    source circtools/bin/activate

    # install circtools
    pip install numpy # required for HTSeq, dependency of circtools
    pip install circtools

    # install R packages for circtools
    circtools_install_R_dependencies

Via git (development version)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Additionally, this repository offers the latest development version:

.. code-block:: console

    pip install numpy # required for HTSeq, a dependency of circtools
    pip install git+https://github.com/jakobilab/circtools.git

The primer-design module as well as the exon analysis and circRNA testing module
require a working installation of `R `__ with
`BioConductor `__. All R packages
required can be automatically installed during the setup. Please see the
`"Installing circtools" `__
chapter of the main circtools documentation for more detailed installation instructions.


Modules
-------

Circtools currently offers the following modules:

nanopore `(detailed documentation) `__ [NEW in 2.0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recent advances in long-read sequencing technologies have enabled the generation of
full-length circRNA sequences. The module is based on
`long_read_circRNA `__ and designed to specifically process the
unique characteristics of Oxford Nanopore data, i.e. the handling of sequencing
reads > 5kb, and provides accurate and efficient detection of circRNAs.


padlock `(detailed documentation) `__ [NEW in 2.0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Spatial transcriptomics emerged as a powerful technique to map the localization of
single molecules to the level of individual cells and even offer subcellular resolution.
Although most of the high-throughput methods were designed with linear polyadenylated
RNAs in mind, some methods could target circRNAs as well. This module is
specifically tailored to the Xenium platform as it offers subcellular resolution
and an option for custom panel design. The module requires three inputs: 1)
circRNA coordinates detected using \textit{circtools}' detect step, 2)
a genome FASTA file, and 3) a transcriptome GTF file.


conservation `(detailed documentation) `__ [NEW in 2.0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Evolutionary conservation analysis oftentimes uncovers the potential
functional relevance of circRNAs by comparing their sequence and genomic
position across different organisms. We developed the conservation module
to enable users to perform circRNA conservation analysis in five widely
studied animal model species: mouse, human, rat, pig, and dog. The framework
of the conservation module was developed with the flexibility to incorporate
more species in the analysis by simply adding the species to the input config file.


detect/metatool `(detailed documentation) `__ [Updated in 2.0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``detect`` command is an interface to
`DCC `__, developed at the
Dieterich Lab. The module allows to detect circRNAs from RNA sequencing
data. The module is the foundation of all other steps for the circtools
work flow. All parameters supplied to circtools will be directly passed
to DCC. The detect module also performs the new metatool functionality
added with circtools 2.0 which enables the addition of circRNA counts
generated with `ciriquant` to further improve recall rates.

quickcheck `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The quickcheck module of circtools is an easy way to check the results
of a DCC run for problems and to quickly assess the number of circRNAs
in a given experiment. The module needs the mapping log files produced
by STAR as well as the directory with the DCC results. The module than
generates a series of figures in PDF format to assess the results.

reconstruct `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``reconstruct`` command is an interface to
`FUCHS `__. FUCHS is employing
DCC-generated data to reconstruct circRNA structures. All parameters
supplied to circtools will be directly passed to FUCHS.

circtest `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``circtest`` command is an interface to
`CircTest `__. The module a a
very convenient way to employ statistical testing to circRNA candidates
generated with DCC without having to write an R script for each new
experiment. For detailed information on the implementation itself take a
look at the `CircTest
documentation `__. In
essence, the module allows dynamic grouping of the columns (samples) in
the DCC data.

exon `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The exon module of circtools employs the `ballgown R
package `__
to combine data generated with DCC and circtest with ballgown-compatible
``stringtie`` output or cufflinks output converted via
`tablemaker `__ in order get
deeper insights into differential exon usage within circRNA candidates.

enrich `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``enrichment`` module may be used to identify circRNAs enriched for
specific RNA binding proteins (RBP) based on DCC-identified circRNAs and
processed
`eCLIP `__
data. For K526 and HepG2 cell lines plenty of this data is available
through the
`ENCODE `__
project.

primer `(detailed documentation) `__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``primer`` command is used to design and visualize primers required
for follow up wet lab experiments to verify circRNA candidates.


.. |docs| image:: https://readthedocs.org/projects/circtools/badge/?version=latest
    :alt: Documentation Status
    :scale: 100%
    :target: https://docs.circ.tools/en/latest/?badge=latest

.. |build| image:: https://github.com/jakobilab/circtools/actions/workflows/run_circtools_detect.yml/badge.svg?branch=master
    :alt: CI Status
    :scale: 100%
    :target: https://github.com/jakobilab/circtools/actions/workflows/run_circtools_detect.yml

.. |docker| image:: https://github.com/jakobilab/circtools/actions/workflows/multi_docker.yml/badge.svg?branch=master
    :alt: Docker Images
    :scale: 100%
    :target: https://github.com/jakobilab/circtools/actions/workflows/multi_docker.yml

.. |zenodo| image:: https://zenodo.org/badge/498448368.svg
    :alt: Zenodo DOI link
    :scale: 100%
    :target: https://zenodo.org/badge/latestdoi/498448368

.. |downloads| image:: https://pepy.tech/badge/circtools
    :alt: Python Package Index Downloads
    :scale: 100%
    :target: https://pepy.tech/project/circtools

.. |pypi| image:: https://badge.fury.io/py/circtools.svg
    :alt: Python package version
    :scale: 100%
    :target: https://badge.fury.io/py/circtools

Owner

  • Name: Jakobi Lab
  • Login: jakobilab
  • Kind: organization
  • Email: contact@jakobilab.org
  • Location: The University of Arizona

Studying the interplay of coding and non-coding RNAs, such as the novel class of circRNAs in heart disease

GitHub Events

Total
  • Create event: 9
  • Issues event: 35
  • Release event: 2
  • Delete event: 1
  • Member event: 1
  • Issue comment event: 21
  • Push event: 258
  • Pull request event: 22
  • Pull request review event: 6
  • Fork event: 2
Last Year
  • Create event: 9
  • Issues event: 35
  • Release event: 2
  • Delete event: 1
  • Member event: 1
  • Issue comment event: 21
  • Push event: 258
  • Pull request event: 22
  • Pull request review event: 6
  • Fork event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 1,115
  • Total Committers: 9
  • Avg Commits per committer: 123.889
  • Development Distribution Score (DDS): 0.181
Past Year
  • Commits: 147
  • Committers: 1
  • Avg Commits per committer: 147.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Tobias Jakobi t****i@m****e 913
alexey0308 a****t@g****m 175
Sandeep Kambhampati s****i@c****n 9
Harald Wilhelmi h****i@u****e 7
Tobias Jakobi t****i 4
Tobias Jakobi T****i@m****e 2
Sandeep Kambhampati s****i@t****n 2
Christoph Dieterich c****h@a****e 2
Tobias Jakobi t****s@j****z 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 24
  • Total pull requests: 17
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.24
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 23
  • Pull requests: 15
  • Average time to close issues: 16 days
  • Average time to close pull requests: 8 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.65
  • Average comments per pull request: 0.27
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • wjmellon (16)
  • tjakobi (7)
  • shubhada-kulkarni (1)
  • JEstabrook (1)
  • farzamani (1)
Pull Request Authors
  • wjmellon (9)
  • shubhada-kulkarni (5)
  • tjakobi (2)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 283 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 18
  • Total maintainers: 1
pypi.org: circtools

circtools - a circular RNA toolbox

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 283 Last month
Rankings
Dependent packages count: 10.0%
Forks count: 19.1%
Dependent repos count: 21.7%
Average: 25.4%
Downloads: 37.2%
Stargazers count: 38.8%
Maintainers (1)
Last synced: 11 months ago

Dependencies

requirements.txt pypi
  • DCC >=0.5.0
  • FUCHS >=0.3.0
  • HTSeq >=0.11.0
  • biopython >=1.71
  • numpy >=1.14.5
  • pybedtools >=0.7.10
  • pysam >=0.13
  • reportlab >=3.3.0
  • scipy >=0.19.0
setup.py pypi
  • HTSeq *
  • biopython *
  • numpy *
  • pandas *
  • pybedtools *
  • pysam *
  • reportlab *
  • scipy *
  • statsmodels *