All Projects → UofLBioinformatics → circDeep

UofLBioinformatics / circDeep

Licence: MIT license
End-to-End learning framework for circular RNA classification from other long non-coding RNA using multimodal deep learning

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to circDeep

Fucking Algorithm
刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why.
Stars: ✭ 99,705 (+474685.71%)
Mutual labels:  dynamic-programming
dynamic-programming-visualization
In browser visualization for dynamic programming algorithms
Stars: ✭ 14 (-33.33%)
Mutual labels:  dynamic-programming
MultiGraphGAN
MultiGraphGAN for predicting multiple target graphs from a source graph using geometric deep learning.
Stars: ✭ 16 (-23.81%)
Mutual labels:  multimodal-deep-learning
StructDualDynProg.jl
Implementation of SDDP (Stochastic Dual Dynamic Programming) using the StructJuMP modeling interface
Stars: ✭ 22 (+4.76%)
Mutual labels:  dynamic-programming
video-scene-detection
Video Scene Detection Based on the Optimal Sequential Grouping algorithm
Stars: ✭ 62 (+195.24%)
Mutual labels:  dynamic-programming
kmeans1d
⭐ A Python package for optimal 1D k-means clustering.
Stars: ✭ 35 (+66.67%)
Mutual labels:  dynamic-programming
Coding Ninjas Competitive
This will have all the solutions to the competitive programming course's problems by Coding ninjas. Star the repo if you like it.
Stars: ✭ 168 (+700%)
Mutual labels:  dynamic-programming
The-Ruby-Workshop
A New, Interactive Approach to Learning Ruby
Stars: ✭ 26 (+23.81%)
Mutual labels:  dynamic-programming
MCScanX
MCScanX: Multiple Collinearity Scan toolkit X version. The most popular synteny analysis tool in the world!
Stars: ✭ 144 (+585.71%)
Mutual labels:  dynamic-programming
MSAF
Offical implementation of paper "MSAF: Multimodal Split Attention Fusion"
Stars: ✭ 47 (+123.81%)
Mutual labels:  multimodal-deep-learning
InterviewPrep
A repository containing link of good interview questions
Stars: ✭ 54 (+157.14%)
Mutual labels:  dynamic-programming
recursion-and-dynamic-programming
Julia and Python recursion algorithm, fractal geometry and dynamic programming applications including Edit Distance, Knapsack (Multiple Choice), Stock Trading, Pythagorean Tree, Koch Snowflake, Jerusalem Cross, Sierpiński Carpet, Hilbert Curve, Pascal Triangle, Prime Factorization, Palindrome, Egg Drop, Coin Change, Hanoi Tower, Cantor Set, Fibo…
Stars: ✭ 37 (+76.19%)
Mutual labels:  dynamic-programming
LeetCode
Solution to LeetCode Problems in Python and Golang 🎯
Stars: ✭ 12 (-42.86%)
Mutual labels:  dynamic-programming
algoexpert
AlgoExpert is an online platform that helps software engineers to prepare for coding and technical interviews.
Stars: ✭ 8 (-61.9%)
Mutual labels:  dynamic-programming
problem-solving
No description or website provided.
Stars: ✭ 56 (+166.67%)
Mutual labels:  dynamic-programming
Rocketcocoa
A framework for running any extra Cocoa code dynamically
Stars: ✭ 187 (+790.48%)
Mutual labels:  dynamic-programming
DSA--GeeksForGeeks
DSA course solutions in C++ Jump to below directly for more problems
Stars: ✭ 47 (+123.81%)
Mutual labels:  dynamic-programming
Pike-Modules
Various Pike modules
Stars: ✭ 15 (-28.57%)
Mutual labels:  dynamic-programming
ViterbiAlgorithm
Viterbi Algorithm for HMM
Stars: ✭ 26 (+23.81%)
Mutual labels:  dynamic-programming
seqalign pathing
Rust implementation of sequence alignment / Levenshtein distance by A* acceleration of the DP algorithm
Stars: ✭ 17 (-19.05%)
Mutual labels:  dynamic-programming

circDeep: Deep learning approach for circular RNA classification from other long non-coding RNA

circDeep fuse Reverse Complement Matching (RCM) descriptor, Asymmetric Convolution Neural Network combined with Long Short Term Memory (ACNN-BLSTM) sequence descriptor and conservation descriptor into high level abstraction descriptors, where the shared representations across different modalities are integrated. The experiments show that circDeep is not only faster than existing tools but also performs at an unprecedented level of accuracy by achieving more than 12 percent increase in accuracy over the existing tools.

Prerequisites

We recommend to use Anaconda 3 platform.

Installation

Download circDeep by

git clone https://github.com/UofLBioinformatics/circDeep

Installation has been tested in Anaconda (Linux/Windows) platform with Python3.

Usage

usage: circDeep.py [-h] --train TRAIN --genome GENOME -gtf GTF --bigwig BIGWIG
               [--seq SEQ] [--rcm RCM] [--cons CONS] [--predict PREDICT]
               [--out_file OUT_FILE] [--model_dir MODEL_DIR] 
               [--positive_bed POSITIVE_BED] [--negative_bed NEGATIVE_BED] 
               [--testing_bed TESTING_BED] 

circular RNA classification from other long non-coding RNA using multimodal deep learning

Required arguments:
=================== 
   --data_dir <data_directory>
                        Under this directory, you will have descriptors files used for training, the label file, genome sequencefile , gtf annotation file and bigwig file
  --train TRAIN         use this option for training model
  --genome GENOME       Genome sequence. e.g., hg38.fa
  --gtf GTF             The gtf annotation file. e.g., hg38.gtf
  --bigwig BIGWIG       conservation scores in bigWig file format
                        
 optional arguments:
====================

   -h, --help            show this help message and exit
  --seq SEQ             The modularity of ACNN-BLSTM seq
  --rcm RCM             The modularity of RCM
  --cons CONS           The modularity of conservation
  --predict PREDICT     Predicting circular RNAs. if using train, then it will
                        be False
  --out_file OUT_FILE   The output file used to store the prediction
                        probability of testing data
  --model_dir MODEL_DIR
                        The directory to save the trained models for future
                        prediction
   --positive_bed POSITIVE_BED
                        BED input file for circular RNAs for training, it
                        should be like:chromosome start end gene
  --negative_bed NEGATIVE_BED
                        BED input file for other long non coding RNAs for
                        training, it should be like:chromosome start end gene
  --testing_bed TESTING_BED
                        BED input file for testing data, it should be
                        like:chromosome start end gene

Example

Train the model:

In our experiements, we have used circular RNAs from circRNADb and our negative dataset from GENCODE. The original coordinates of our datasets were in hg19 genome and we convert them to hg38 genome using liftOver provided in UCSC Genome Browser. We need also to download all necessary files and put them in data directory.

python3 circDeep.py --data_dir 'data/' --train True --model_dir 'models/' --seq True --rcm True --cons True --genome 'data/hg38.fasta' --gtf 'data/Homo_sapiens.Ensembl.GRCh38.82.gtf' --bigwig 'data/hg38.phastCons20way.bw' --positive_bed 'data/circRNA_dataset.bed' --negative_bed 'data/negative_dataset.bed'

Test the model:

python3 circDeep.py --data_dir 'data/' --train False --model_dir 'models/' --seq True --rcm True --cons True --genome 'data/hg38.fasta' --gtf 'data/Homo_sapiens.Ensembl.GRCh38.82.gtf' --bigwig 'data/hg38.phastCons20way.bw' --testing_bed 'data/test.bed'

Note:

Input data files for training and testing should be in bed format:

chr17 17507350 17508308 + gene1

chr11 48014405 48015855 - gene2

chr17 77469161 77472770 - gene3

License

Copyright (C) 2017 . See the LICENSE file for license rights and limitations (MIT).

Citation

Mohamed Chaabane, Robert M Williams, Austin T Stephens, Juw Won Park, circDeep: deep learning approach for circular RNA classification from other long non-coding RNA, Bioinformatics, Volume 36, Issue 1, 1 January 2020, Pages 73–80, https://doi.org/10.1093/bioinformatics/btz537

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].