GithubHelp home page GithubHelp logo

cnapy-org / cnapy Goto Github PK

View Code? Open in Web Editor NEW
43.0 3.0 7.0 7.36 MB

An integrated visual environment for metabolic modeling with common methods such as FBA, FVA and Elementary Flux Modes, and advanced features such as thermodynamic methods, extended Minimal Cut Sets, OptKnock, RobustKnock, OptCouple and more!

Home Page: https://cnapy-org.github.io/CNApy-guide/

License: Apache License 2.0

Python 99.24% Batchfile 0.04% Shell 0.01% HTML 0.71%
metabolic-models constraint-programming bioinformatics flux-balance-analysis sbml systems-biology computational-biology cobra stoichiometric-modeling constraint-based-modeling

cnapy's People

Contributors

axelvonkamp avatar paulocracy avatar sthiele avatar vonalphabiszulu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cnapy's Issues

Cleanup examples directory

New structure simply projects

SmallExample2 - SmallExample2.cna
              - Smallexample2-map1.map
              - scenario1.scen
              - background-map1.svg
              - verycool.modes
...

Show annotations from the sbml model in the reaction/species properties

  • We do read and show the cobra annotation for reactions.

But cobra does it's own parsing of the annotations

<reaction id="R_ULA4Ntppi" fast="false" reversible="false" name="Transport (cytoplasm to periplasm)" metaid="R_ULA4Ntppi" sboTerm="SBO:0000185" fbc:upperFluxBound="cobra_default_ub" fbc:lowerFluxBound="cobra_0_bound">
  <sbml:annotation xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about="#R_ULA4Ntppi">
        <bqbiol:is xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
          <rdf:Bag>
            <rdf:li rdf:resource="http://identifiers.org/bigg.reaction/ULA4Ntppi"/>
            <rdf:li rdf:resource="http://identifiers.org/metanetx.reaction/MNXR105114"/>
            <rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn09357"/>
          </rdf:Bag>
        </bqbiol:is>
      </rdf:Description>
    </rdf:RDF>
  </sbml:annotation>

and is returning a bunch of identifiers

{'sbo': 'SBO:0000185', 'bigg.reaction': 'ULA4Ntppi', 'metanetx.reaction': 'MNXR105114', 'seed.reaction': 'rxn09357'}

I have no idea how we could get our metadata into this scheme.

Compute/show basic model properties

  • Number of reactions, metabolites
  • Stoichiometric matrix infos
  • conservation relations
  • degrees of freedom
  • smallest/largest absolute value > 0 in matrix
STOICHIOMETRIC MATRIX (without external metabolites):
     6 internal (balanced) metabolites (rows)
     10 reactions (columns), thereof 2 reversible
     Rank of stoichiometric matrix: 6
          --> No conservation relation(s) exist.
     Degrees of freedom: 4
 
     Smallest (absolute) non-zero-value: 1
     Largest (absolute) value: 1
 
     Network can be compressed to (isozymes not considered): 
          2 metabolites 
          6 reactions (thereof 2 reversible)
  • Model Annotations

Set config option from UI

  • CNA path
  • Colors
  • Shown number of digits after decimal point
  • Defaultcolor : Qt.gray
  • self.abs_tol : 0.0001
  • Working directory should better be set to last used(open/save) directory

Save default scenario within the project data

Not sure yet how this is done best.
In some sense the bounds on the models reaction represent itself a scenario.
Should constraints from an default scenario would overwrite these bounds?

Example: in the model has reaction R the bounds -10>=,<=5
in the scenario the bounds are set to 6>=,<=10.

I see two ways to interpret this situation and I'm not yet sure which to choose:

  1. If i give both constraints there would be no solution.
  2. if the scenario replaces the models constraint there are solutions

Improve console

Maybe use pyqtconsole?
pyqtconsole is using PyQt5 while we are using PySide2 as qt bindings also it has no conda package.
qtconsole looks like a larger more active project they also have conda packages and may work with PySide2 via qtpy.

Add functionality to remove unused species

I see 3 approaches

  1. automatically remove unused species if the model changes
  2. add a function to remove unused species on demand
  3. add a button to remove species manually

Save/show/edit additional infos like comments or delta g_0

Either like cobrapy in the SBML annotations (as RDF) or in a separate file which would be included in the cna project/archive.
Here a list of CNA specific reaction attributes:

  • deltaGR_0 : -35.68;
  • deltaGR_Uncertainty : 7.97
  • KEGG_ID : R08549
  • BiGG_ID :AKGDH

and a list of CNA specific species attributes:

  • BiGG_ID : 4crsol_p
  • Universal_BiGG_ID : 4crsol
  • KEGG_ID :
  • CHEBI_ID : CHEBI:44726
  • Formula : C23H34N7O17P3S
  • Charge : NaN

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.