Package: nrpcalc
Overview•Installation•License•Citation•DOCS•NRP Calculator in Action!OverviewEngineering large genetic circuits, pathways and whole genomes require large toolboxes of well characterized genetic parts. Existing toolboxes for composing such genetic systems from scratch are either small (forcing designers to re-use a particular part at multiple locations) and/or frequently share many repeats. Systems composed of repetitive elements are challenging to synthesize using commercial DNA synthesis approaches, often resulting in incomplete or mixed products. Moreover, when a repetitive genetic system introduced in a host organism causes biochemical stress, the cell may respond with homologous recombination – sections of the introduced system are deleted, effectively breaking it.  InE. coli, a 20-bp repeat is enough  to trigger detectable levels of recombination.To solve thisrepeat challengein synthetic biology, we developed and experimentally validated a suite of algorithms that automatically discovers and designs large toolboxes of highly non-repetitive genetic parts, collectively called theNon-Repetitive Parts Calculator. InFinder Mode, the algorithm discovers subsets of non-repetitive genetic parts from pre-existing toolboxes of characterized parts, while inMaker Mode, the algorithm designs large toolboxes of non-repetitive genetic parts for downstream characterization, based on specified design constraints such as a degenerate DNA or RNA sequence, an RNA secondary structure, and/or arbitrary model-based criteria.Non-repetitiveness is a global property of the entire genetic part toolbox, and it is quantified by a repeat distribution (the number of repeats of lengthL) or more simply by the maximum shared repeat length,Lmax.  Both algorithms generate toolboxes according to a user-specifiedLmaxto control the desired level of non-repetitiveness. For example, when a toolbox of genetic parts is designed using anLmaxof 10 base pairs, every genetic part in the toolbox can be simultaneously utilized in the same genetic system without introducing a repetitive sequence longer than 10 base pairs, which is necessary to ensure successful DNA synthesis and assembly.InstallationNon-Repetitive Parts Calculatoris aLinux/MacOS-tested software, and was originally built withPython2.7. The software is nowPython3exclusive, and compatible only withPython3.6and above.Python2.7is no longer supported.Setting up the EnvironmentThe best way to installNRP Calculatoris viaconda. If you have eitheranacondaorminicondainstalled on your system, you are good to proceed. Otherwise, you may first need to installminiconda.Assuming you havecondaavailable on your system, you may first create a new environment. Here we are naming itnrpenvbut you can name it as you like. Also, we are settingnrpenvup withPython3.6but feel free to installPython3.7, or one of the newer ones.$condacreate-nnrpenvpython=3.6Once your new environment is ready, deactivate your current environment$condadeactivateand activate the newly creatednrpenvenvironment$condaactivatenrpenvNoteYou don't necessarily need to make a new environment, as long as you know which environment you wantNRP Calculatorinstalled in, and have it activated during installation. For example, you might have a different project environment inside which you want to installNRP Calculator.Approach 1: Install from PyPIYou can installNRP Calculatorfrom PyPI, where it is published as thenrpcalcpackage. This is as easy as$pipinstall--upgradenrpcalc--no-cache-dirwhich will also install all dependencies from PyPI.Approach 2: Install from GitHubAlternatively, you can installNRP Calculatorfrom GitHub. To do so, first clone the repository with$gitclonehttps://github.com/ayaanhossain/nrpcalc.gitOnce downloaded, navigate into thenrpcalcdirectory with$cdnrpcalcand installNRP Calculatorusing the includedsetup.py$pythonsetup.pyinstallVerifying InstallationIf everything went well,NRP Calculatoris now available in your environment under thenrpcalcpackage. You may verify it like so:$pythonPython3.6.10|packagedbyconda-forge|(default,Apr242020,16:44:11)[GCC7.3.0]onlinuxType"help","copyright","credits"or"license"formoreinformation.>>>>>>importnrpcalc>>>>>>print(nrpcalc.__doc__)Non-RepetitivePartsCalculatorAutomateddesignanddiscoveryofnon-repetitivegeneticpartsforengineeringstablesystems.Version:1.6.3Authors:AyaanHossain<auh57@psu.edu>HowardSalis<salis@psu.edu>TheNon-RepetitivePartsCalculatorofferstwomodesofoperation:-FinderMode:Discovertoolboxesofnon-repetitivepartsfromalistofcandidateparts-MakerMode:Designtoolboxesofnon-repetitivepartsbasedonsequence,structureandmodelconstraintsAdditionally,a'background'objectisavailablethatstoresbackgroundsequences.Whenthe'background'objectisused,designedgeneticpartswillalsobenon-repetitivewithrespecttothesesequences.Youcanlearnmoreaboutthetwomodesandbackgroundviaprint(nrpcalc.background.__doc__)print(nrpcalc.finder.__doc__)print(nrpcalc.maker.__doc__)>>>NoteRemember to activate the specific environment in whichNRP Calculatoris installed in order to use it. For example, if you followed the instructions above exactly, then the environment you created and installedNRP Calculatorin is namednrpenv.UninstallingNRP CalculatorYou can easily removeNon-Repetitive Parts Calculatorwith$pipuninstallnrpcalcReporting Installation IssuesIf you encounter any problems during installation, please feel free toopen an issuedescribing your problem along with your OS details, and any console output that shows the error.LicenseNon-Repetitive Parts Calculator(c) 2020 Ayaan Hossain.Non-Repetitive Parts Calculatoris anopen-source softwareunderMITLicense.SeeLICENSEfile for more details.CitationIf you useNon-Repetitive Parts Calculatoror toolboxes designed or discovered using the algorithm in your research publication, please citeHossain A., Lopez E., Halper S.M., Cetnar D.P., Reis A.C., Strickland D., Klavins E., and Salis H.M.
Automated design of thousands of nonrepetitive parts for engineering stable genetic systems
Nature Biotechnology, doi:10.1038/s41587-020-0584-2You can read the complete article online atNature Biotechnology. A free PDF copy of the paper is accessiblehere.AbstractEngineered genetic systems are prone to failure when their genetic parts contain repetitive sequences. Designing many non-repetitive  genetic  parts  with  desired  functionalities  remains  a  significant  challenge  with  high  computational  complexity.  To  overcome this challenge, we developed the nonrepetitive parts calculator to rapidly generate thousands of highly nonrepetitive genetic  parts  from  specified  design  constraints,  including  promoters,  ribosome-binding  sites  and  terminators.  As  a  demonstration, we designed and experimentally characterized 4,350 nonrepetitive bacterial promoters with transcription rates that varied across a 820,000-fold range, and 1,722 highly nonrepetitive yeast promoters with transcription rates that varied across a  25,000-fold  range.  We  applied  machine  learning  to  explain  how  specific  interactions  controlled  the  promoters’  transcription rates. We also show that using nonrepetitive genetic parts substantially reduces homologous recombination, resulting in greater genetic stability.AcknowledgementsThis project was supported by funds from the Air Force Office of Scientific Research (grant no. FA9550-14-1-0089), the Defense Advanced Research Projects Agency (grant nos. FA8750-17-C-0254 and HR001117C0095), the Department of Energy (grant no. DE-SC0019090), and a Graduate Research Innovation award from the Huck Institutes of the Life Sciences.ContributionsA.H. and H.M.S. conceived the study. A.H., E.L., D.P.C., S.M.H., A.C.R. and D.S. designed and carried out the experiments. A.H., A.C.R. and H.M.S. developed the algorithms and performed the data analysis. A.H., D.S., E.K. and H.M.S. wrote the manuscript.MaintenanceNon-Repetitive Parts Calculatoris currently maintained byAyaan Hossain |github.com/ayaanhossain|@bioalgorithmistHoward Salis |github.com/hsalis|@hsalisAPI DocumentationA detailed description ofnrpcalcMaker Mode,Finder Mode, andBackgroundAPI, along with example use cases can be found inDOCS.md. You may also check the API documentation from within thePythonREPL viaprint(nrpcalc.background.__doc__),print(nrpcalc.finder.__doc__), andprint(nrpcalc.maker.__doc__).If you enconter any problem using the API, please feel free toopen an issuedescribing your use case, along with minimal code snippets reproducing the problem and any console output that shows the problem or error.NRP Calculatorin Action!Ajupyternotebookdescribing the use ofNRP Calculatorin designing thousands of commonly used genetic parts from constitutive promoters to intrinsic terminators forE. colisystems engineering is available inside/examples/directory.If you haveinstallednrpcalcthen you have everything you need to open and execute the notebook.Simply clone this repository$gitclonehttps://github.com/ayaanhossain/nrpcalc.gitand navigate tonrpcalc/examples/directory$cdnrpcalc/examples/and fire upjupyter.$jupyternotebookThis should now open a browser tab showing a singlejupyternotebook namedNRPCalcInAction.ipynb. Click on the notebook to open it, and follow the content of the notebook.If any part of the notebook is unclear or confusing to you, please feel free to reach any of the authors via Email or Twitter, who would be more than happy to clarify anything in the notebook.We hope you enjoy the paper and the notebook!