GithubHelp home page GithubHelp logo

no-banana / pyrbp Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 46.28 MB

A python framework for RNA-RBP binding event characterization

Home Page: https://rbp-package.readthedocs.io/en/latest/index.html

License: MIT License

Python 100.00%

pyrbp's Introduction

PyRBP: A Python Framework for Reliable Identification and Characterization of High-Throughput RNA-Binding Protein Events

Documentation Status GitHub all releases

Release: Source | Changelog
Links: Getting Started | API Reference | Examples

PyRBP is a Python library for quick generating characterization matrices, feature selection, models evaluation, feature analysis and performance visualization of circRNA or linear RNA sequence data. Currently, PyRBP includes more than 10 RNA sequence characterization methods, including three classes of characterization views: dynamic and static semantic information, RNA secondary structure information and RNA physicochemical properties.

PyRBP is constructed based on multiple RNA-RBP binding semantic models (RBPBERT, FastText, GloVe, Word2Vec, Doc2Vec) developed by ourselves. It provides four advanced features:

  • ๐ŸŽ Unified, easy-to-use APIs, detailed documentation and examples.
  • ๐ŸŽ Capable for out-of-the-box RNA-RBP binding event characterization and downstream experiments.
  • ๐ŸŽ Powerful, customizable performance and feature analysis visualizer.
  • ๐ŸŽ Full compatibility with other popular packages like scikit-learn and yellowbrick.

Generating features using PyRBP with 7 Lines of Code:

# Generate RNA physicochemical properties
from PyRBP.Features import generateBPFeatures
from PyRBP.featureSelection import cife
from PyRBP.metricsPlot import shap_interaction_scatter
bp_features = generateBPFeatures(sequences, PGKM=True)

# Filter the original features
refined_features = cife(bp_features, label, num_features=10)

# Performance visualization of SVM using PyRBP
clf = SVC(probability=True)
shap_interaction_scatter(refined_features, label, clf=clf, sample_size=(0, 100), feature_size=(0, 10), image_path='./')

Table of Contents

Installation

It is recommended to use git for installation.

$ conda create -n PyRBP python=3.7.6            # create a virtual environment named PyRBP
$ conda activate PyRBP                          # activate the environment  
$ git clone https://github.com/no-banana/PyRBP.git # clone this repository
$ cd PyRBP
$ pip install -r requirement.txt               # install the dependencies of PyRBP

After this, the torch also needs to be installed separately according to the cuda version of your device, e.g. CUDA 10.2 can be used with the following command.

$ pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

scikit-feature can be installed in a virtual environment with the following command

git clone https://github.com/jundongl/scikit-feature.git
cd scikit-feature
python setup.py install

The language models used in PyRBP can be downloaded from figshare

Note for OSX users: due to its use of OpenMP, glove-python-binary does not compile under Clang. To install it, you will need a reasonably recent version of gcc (from Homebrew for instance). This should be picked up by setup.py.

git clone https://github.com/maciejkula/glove-python.git
cd glove-python
python setup.py install

PyRBP requires following dependencies:

Highlights

  • ๐ŸŽ Unified, easy-to-use APIs
    The functions in each module in PyRBP have individual unified APIs.
  • ๐ŸŽ Extended functionalities, wider application scenarios.
    PyRBP provides interfaces for conducting downstream RNA-RBP binding event experiments, including feature selection, model cross validation, feature and performance analysis visualization.
  • ๐ŸŽ Detailed training log, quick intuitive visualization.
    We provide additional parameters in characterization functions for users to control the window to capture information of different views they want to monitor during the sequence encoding. We also implement an metricsPlot to quickly visualize the results of feature analysis or model evaluation for providing further information/conducting comparison. See an example here.
  • ๐ŸŽ Wide compatiblilty.
    IMBENS is designed to be compatible with scikit-learn (sklearn) and also other projects like yellowbrick. Therefore, users can take advantage of various utilities from the sklearn community for cross validation or result visualization, etc.

List of implemented methods

Currently (v0.1.0, 2023/03), 13 RNA-RBP binding event characterization methods were implemented:
(Click to jump to the document page)

Note: PyRBP is still under development, please see API reference for the latest list.

Contact:

Thank you for using PyRBP! Any questions, suggestions or advices are welcome.

email address:[email protected], [email protected]

pyrbp's People

Contributors

no-banana avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.