Giter VIP home page Giter VIP logo

alphafold's Introduction

AlphaFold

(C) R. Das, Stanford University 2018

What this is

A Python package for modeling the statistical physics of RNA folding at the secondary structure level.

Goals:

  • Code that is easy to read so that humans can easily extend it to model new RNA physics
  • Code with numerous tests built in so that extensions are correct
  • A package that can learn from the huge data sets our lab is collecting.

A separate C++ package alphafoldplus with the same functionality and matching python bindings and likely up to 100x the speed is being developed separately in a private repository.

Features

This code brings together features pioneered in (but scattered across) prior packages:

  • Multi-strand calculations
  • Circular RNAs
  • Co-axial stacking
  • True partition function calculations in N^3 time
  • Base pair probability estimates
  • Gradients of predicted observables with respect to energy model parameters, to enable learning from data
  • Enumerative backtracking to get all structures and their Boltzmann weights
  • Stochastic backtracking to get Boltzmann-sampled structures
  • Minimum free energy structures
  • Generalized base pairs (e.g., both Watson-Crick and Sugar/Hoogsteen G-A pairs) (coming soon)
  • 'Classic' Turner2004 & ContraFold parameters (coming soon)
  • Modeling of ligand/protein binding to RNA hairpins and internal loops (coming soon)
  • Modeling of protein binding to RNA single-stranded segments (coming soon)

This code also presents entirely new features, based on recent theoretical insights from R. Das & students:

  • Cross-checks based on computation of the partition function N different ways for each RNA.
  • Loop penalties that rise like the logarithm of the number of loop nucleotides, still in N^3 time (coming soon)
  • Parameters for chemically modified bases, and some modified backbones, based on Rosetta calculations (coming soon)
  • Linear motifs identified by Rosetta or by crystallography as having favorable energy bonuses (coming soon)
  • Modeling of protein binding to RNA, including proper steric exclusion effects. (coming soon)
  • Modeling of RNA tertiary contacts, through a novel iterative sampling method, Rosetta-calculated properties of the contacts, and efficient C_eff calculations. (coming soon)
  • Tracking and propagation of estimated model uncertainties. (coming soon)
  • Efficient learning from large data sets through stochastic gradient-based calculations (coming soon)
  • Easy install through sudo pip (coming soon)

License

This code is being released with the MIT license. So you can distribute it with your code.

Getting started

Clone this repository, and just type:

./alphafold.py

to run tests on a bunch of example sequences.

To run on tRNA(phe) from yeast:

./alphafold.py -s GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCACCA

To circularize:

./alphafold.py -s GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCACCA --circle

To run on a multi-strand system, type:

./alphafold.py -s GCAACG CGAAGC

To re-run tRNA in a totally weird way:

./alphafold.py -s UGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCACCA GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGAC --circle

Should get the same answer as above linear case!

Contributing

More information on making contributions coming soon.

alphafold's People

Contributors

rhiju avatar everyday847 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.