Skip to content

Piperine compiles abstract CRNs into DNA sequences and estimates how much the generated DNA implementations may participate in undesired DNA-DNA interactions during experiments.

License

Notifications You must be signed in to change notification settings

harel55/piperine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Piperine

Piperine takes in plain text files specifying abstract CRNs and produces sets of DNA sequences. Each sequence set is a possible implementation of the input CRN in

Installation

Piperine has only been tested on Ubuntu and MacOSX Sierra. Windows yet unsupported.

Python version

Piperine works with only Python 2.7. Make an appropriate environment if necessary.

Requirements

Piperine depends on -Numpy -Scipy -NUPACK (version 3.0.x) -stickydesign. Make sure these are installed before installing Piperine.

Preparation for installation

Numpy and Scipy can both be installed easily through pip or conda. NUPACK can be found here and stickydesign can be found here. Once NUPACK is installed, make a terminal variable NUPACKHOME that points to installation destination (might be ~/Downloads/nupack3.0.6). Do this with the commmand export NUPACKHOME=the path to nupack.

Install Piperine

For now, you can only install Piperine from the source files. Clone or download this repository, start a terminal session, and navigate to the repository folder.

git clone [email protected]:DNA-and-Natural-Algorithms-Group/piperine.git

cd piperine Execute the following from the command line from within the piperine repo

python setup.py install

During the installation, you will see a prompt that asks

Please choose which thermodynamics package to use:

(1) Nupack mfe (recomended/default)

(2) Vienna RNAfold

Choose 1. The prompt will then ask if it has guessed the right location for NUPACK, specifically to the executable NUPACKHOME/bin/mfe. If this does not match your expected destination, type in the path to your own NUPACKHOME/bin/mfe and hit enter.

Use cases

Generating sequences

Piperine reads in plaintext files that specify an abstract CRN, converts the CRN into a domain-level DNA specification, then designs sequences implementing the domain-level constraints. An example CRN might be the following, saved in a file called my.crn

-> B

B -> A

A + A -> A

This could then be compiled into DNA sequences by executing the following code in python

from piperine.designer import run_designer

run_designer('my', 4)

This will tell piperine to generate four candidate sequence sets that each implement the CRN specified in my.crn. Piperine will also score each set according to a suite of heuristics intended to quantitate how much a sequence set exhibits pathological sequence motifs. The scores will be saved to a file called my_scores.csv. At the bottom of this file, piperine suggests a "winning" sequence set that is most likely to provide good performance in experiments. More detailed information in the winner selection process can be found in the file score_report.txt. Sequence sets are indexed starting at 0 and saved to filenames myi.crn, for index i.

TODO

  1. Update test suite
  2. Improve documentation
  3. Make compatible with Python >=2.6
  4. Import from external package peppercompiler, rather than package it within piperine
  5. Provide built distributions

About

Piperine compiles abstract CRNs into DNA sequences and estimates how much the generated DNA implementations may participate in undesired DNA-DNA interactions during experiments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.2%
  • EQ 2.4%
  • Other 1.4%