Skip to content

biocrnpyler-1.1.0

Latest
Compare
Choose a tag to compare
@zoltuz zoltuz released this 21 Jun 17:43
· 35 commits to master since this release
11b77cf
Dev to Master Version 1.1.0 (#249)

New Features:
* libroadrunner integration: this new interface allows to simulate CRNs with roadrunner (libroadrunner). Two main operation mode (determined by return_roadrunner flag): getting back numerical results or getting back the roadrunner model object for further analysis.
* Initial Concentrations: now come from the ParameterDatabase (parameter_name "initial concentration", component [species_name]). Can also be set from a dictionary {species:value}. Initial conditions printed in pretty_print function
* EnergyExtract Mixture: this new Extract makes use of a new Component, Metabolite, and new Mechanisms including OneStepPathway in mechanisms_metabolic.py and Energy_Transcription_MM and Energy_translation_MM. These are collectively used to recreate the Model from Singhal et al. 2020 OUP SynBio with a few minor modifications to avoid time-dependent rates and simplify some of the species. These results are detailed in a new jupyter notebook in the advanced examples folder along with a parameter file that includes rates from Singhal et al. 2020 OUP SynBio. Issue #210
* Compartments feature allows Species to be given a compartment attribute  (#211)
* Units compatibility for BioCRNpyler (addressing #130 and #219).  Summary of how it works: units.py has a list of functions that create unit definitions (as required by SBML). These functions are factored in a way that new functions can be easily added with no changes required at any other place in the codebase. So, to add new units, the user simply adds their units to their parameter file in a new column, adds a function corresponding to that unit id string in units.py (this is a simple 3 line function that can be created by copying one of the existing function for units). Parameter class has a new attribute "unit" that goes with every Parameter object (we can discuss what's the best way to do this). This is the part that is incomplete and I need some help so that we can get this done quickly. The tsv file Perfect Parameter File has a new column "units", we will use this to test the functionality to make sure units are correctly read and written to SBML.
So, the current to-do is a minor one: successfully read the Perfect Parameter file with units so that all parameters that have been read have a param.unit attribute.]
* Component Enumeration allows for Components to be generated during the first stage of compilation. IntegrasesConstructs and DNAConstructs are example Components that use enumerators.
* Integrase enumerator (#221) is a set of powerful features that allow integrase-based DNA recombinations to be enumerated and compiled. See the Integrase notebooks for examples.
* Plotting upgrades include coloring features and mouse-over pop-up illustrations of network plots. See plotting examples, integrase examples, and DNA_construct examples.

Larger Changes:
* CRNlab.py has been deleted
* Old Reaction Interface has been removed
* Sphynx issues resolved for automatic documentation generation
* CRN Species and Reactions are "immutable" meaning that they cannot be changed once they are part of a CRN. + Test cases (#214)
* Created MonomerCollection class. OrderedPolymer.polyer is a property: This is a superclass of OrderedPolymer and is the more parent class for OrderedMonomers. PolymerConformations are an example of MonomerCollections.

Name Changes:
* "protease" renamed "degredase"
* Enzyme and MultiEnzyme merged to just be Enzyme(products = ..., substrates = ...) (#212)
* Replace initial_conc to initial_concentrations (#207) & (#209)
* Removed Multimer (this must have been reinserted in a previous PR) and removed Nmer from binding mechanisms

Small Changes and bug fixes:
* OrderedPolymerSpecies.from_polymer_species class method: This is used by Complex to produce new OrderedPolymerSpecies.
* fixed polymer.insert and polymer.remove
* Species equality changed to look at parent instances: This is needed to stop recursion in equalities between nested Complexes inside of PolymerConformations
* Complex funciton expanded, tested and simplified
* remove_bindloc now recursive for PolymerConformations
* added Mechanisms tests
* Dev readme species (#224)
* Compilation Directives for faster CRN compilation USE AT YOUR OWN RISK
* Fix for SBML kinetic law formula #225 (#231)
* remove old code in chemical_reaction_network.py. fix sbml_warnings keyword in simulate function
* linter check as part of github automations
* To speed up the CRN generation SBML ids are pre-generated. Also, the CRN validity check can be switch off by the user.(#239)

Co-authored-by: Ayush Pandey <ayush.9.pandey@gmail.com>
Co-authored-by: William Poole <wpoole@caltech.edu>
Co-authored-by: Zoltan Tuza <zoltuz@gmail.com>
Co-authored-by: Eldad Afik <eldad.afik@gmail.com>
Co-authored-by: dr3y <andrey.shur@gmail.com>
Co-authored-by: Benedict Carling <53439684+Benedict-Carling@users.noreply.github.com>