Predicting protein stability. This repo is a refactoring of @ccorbi's main pulse pipeline for my needs.
From paper here: Semi-supervised Learning Predicts Approximately One Third of the Alternative Splicing Isoforms as Functional Proteins.
Change preprocess/preprocess_settings.json
and features/features_settings.json
to your desired settings before use.
- python2.7
- preprocessing requires cufflinks and samtools
- BLAST is required in the preprocessing step after alternative splice site extraction
- last step of the preprocessing step requires the biopython package
- disorderome scoring step of feature extraction step requires iupred
- domain scoring requires [pfam] (http://www.vcru.wisc.edu/simonlab/bioinformatics/programs/install/pfamscan.htm)
- perl is required for some scripts in feature extraction and in last step
- perl needs the following modules (download with
cpan <module name>
:- Getopt::Long
- LWP::UserAgent
- HTTP::Request::Common qw(POST), qw(GET)
- HTTP::Headers
- XML::XPath
- XML::XPath::XMLParser
- JSON
- sable is required in the last step of feature extraction
Clone the repo, setup:
git clone https://github.com/wonjunetai/pulse.git
cd pulse
python setup.py # set up all directories for pipeline output
Need to import info_canonical_v3.ddbb, refGenome/, uniprot_sprot.fasta, and param_files/.
Use readlink -e .
when you're in root, and export that variable to PULSE_PATH using:
export PULSE_PATH=<result from readlink -e .>
First, insert all of your .bam files into input/cell_lines
, and then run:
python app.py
Preprocessing
- Cufflinks generates transcriptome from sequence alignment data (.bam file).
- Find exon-skipping alternative splicing events from transcriptome.
- Identify anchors to alternative splicing events using BLAST.
- Filter out alternative splicing events without a good anchor.
- Generate an index file to locations of alternative splcing events.
Feature Extraction
- Transmembrane scoring.
- Post transcriptional modification scoring.
- Eukaryotic linear motif scoring.
- Disorderome scoring.
- Domain scoring using PFAM.
- Sable scoring.
- Mutation scoring.
- Conservation/network features generation.
Machine Learning Step
Five iterations of random forest classifier - takes the average of all iterations to generate final votes from ensemble and importance of each feature.
- Need to download the uniprot using API and insert into pulse/input. After the uniprot_sprot file is downloaded into input/, need to run:
formatdb -i ./input/uniprot_sprot.fasta -p T # creates a hashed version of uniprot_sprot.fasta database