Skip to content

Commit

Permalink
1.2 release of PyDesign
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Hammer committed Dec 21, 2016
1 parent d9de137 commit f483a47
Show file tree
Hide file tree
Showing 24 changed files with 1,778 additions and 7,531 deletions.
26 changes: 17 additions & 9 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
PyDesign Library for designing RNA molecules
RNAsketch Library for designing RNA molecules
============================================

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

Download the lastes PyDesign package from https://github.com/ribonets/PyDesign/releases/latest, exctract and simply use setuptools to install the module and the few sample scripts::
Download the lastes RNAsketch package from https://github.com/ribonets/RNAsketch/releases/latest, exctract and simply use setuptools to install the module and the few sample scripts::

python setup.py install

Expand All @@ -15,7 +15,7 @@ argument, or in case :code:`PYTHONUSERBASE` is set, just use the :code:`--user`
Build the documentation
-----------------------

Documentation available online: http://ribonets.github.io/PyDesign
Documentation available online: http://ribonets.github.io/RNAsketch

Call these commands to build the html documentation::

Expand Down Expand Up @@ -51,6 +51,8 @@ The program `barriers` can the be used to visualize the energy landscape to conf
.. figure:: data/barriers.png
:width: 350px
.. figure:: doc/data/barriers.png
:width: 350px

Barriers Tree showing the two desired states as deep minima (1, 2) and the open chain (3) as neighbouring
minimum.
Expand All @@ -73,6 +75,8 @@ confirms the design objective:

.. figure:: data/cofold.png
:width: 350px
.. figure:: doc/data/cofold.png
:width: 350px

RNAcofold Dot-Plots, ViennaRNA v2.2.9, AAAUAAGGAGUAAAUGAAUG&CAUUCAUUUACUCCUUACCGCACUCGCGG
Plots were assembled in a single picture for better comparison. Only base pair probabilities
Expand All @@ -85,18 +89,20 @@ Design a multistate Thermoswitch

.. code:: bash
echo -e "((((((((((....)))))))))) 24.0\n((((....))))((((....)))) 37.0\n((((....))))............ 46.0" | design-thermoswitch.py -m random -e 1000
echo -e "(((((((((((((....))))))))))))) 5.0\n(((((.....)))))(((((.....))))) 10.0\n(((((.....)))))............... 37.0" | design-thermoswitch.py -m random -e 1000
This results e.g in a sequence like `GGGUUGAUACCCGAGUGUUGAUUC` which has the given MFE structures at the specified temperatures.
Folding it at all Temeratures from 10 to 100 degree Celsius shows, that the first structural change happens at 30.0 degree
Celsius and the second one at 45 degrees. After 85 degrees, the sequence occurs only in the open chain conformation.
This results e.g in a sequence like `GAUCUGUGUGGGGUCGAUUUUGUGUGGGUU` which has the given MFE structures at the specified temperatures (lower plot).
Folding it at all Temeratures from 10 to 100 degree Celsius shows, that the first structural change happens at ~7.0 degree
Celsius and the second one at ~26 degrees. After _72 degrees, the sequence occurs only in the open chain conformation.

`RNAheat` further confirms that the designed sequence is indeed a three-stable thermoswitch:

.. figure:: data/RNAheat.png
.. figure:: data/thermoswitch.png
:width: 350px
.. figure:: doc/data/thermoswitch.png
:width: 350px

RNAheat Plot, ViennaRNA v2.2.9, GGGUUGAUACCCGAGUGUUGAUUC
RNAheat Plot, ViennaRNA v2.2.9, GAUCUGUGUGGGGUCGAUUUUGUGUGGGUU

Display the Dependency Graph
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -120,5 +126,7 @@ This results in a nice representation of the dependency graph:

.. figure:: data/graph.png
:width: 350px
.. figure:: doc/data/graph.png
:width: 350px

Very simple dependency graph visualized using igraph.
4 changes: 2 additions & 2 deletions PyDesign/Design_Class.py → RNAsketch/Design.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@


import re
from State_Class import *
from State import *

class Design(object):
'''
Expand All @@ -23,7 +23,7 @@ class Design(object):
'''
def __init__(self, structures, sequence=''):
'''
Construct a new State object.
Construct a new Design object.
:param structures:
:param sequence:
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions PyDesign/State_Class.py → RNAsketch/State.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,9 @@ def _get_ensemble_defect(self, sequence, structure, temperature, ligand=None):
#TODO finish implementation with pairing matrix. need to ask ronny how it is done now or use old interface
fc = self._get_fold_compound(sequence, temperature, ligand)
if self.multifold == 0:
(structure, energie) = fc.pf()
_,_ = fc.pf()
if self.multifold == 1:
(structure, energie) = fc.pf_dimer()
_,_ = fc.pf_dimer()
structure = add_cuts(structure, self.cut_points)
elif self.multifold > 1:
raise NotImplementedError
Expand Down
Loading

0 comments on commit f483a47

Please sign in to comment.