Code Monkey home page Code Monkey logo

geckopy's People

Contributors

carrascomj 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

geckopy's Issues

Publish to PyPI

This is pending on pypi/support#1124

For users that stumble upon this issue, please install it from source, as any normal python package:

git clone https://github.com/ginkgobioworks/geckopy
cd geckopy
pip install .
# to also install pytfa (optional dep for thermodynamics integration)
pip install ".[pytfa]"

Remove `hardcoded_rev_reactions` logic

It is nice to avoid all those REV reactions but the complexity of managing this under the hood in the solver is too hard to debug and does not produce any benefits when working with previously used EC models. Moreover, it is tricky to add_proteins and deserialize them when using this logic.

Support 3.10 on CI

Geckopy should support 3.10.

There is a problem with the requests dependency on CI for python 3.10 that needs to be investigated, that's why it is not there for now.

Setting protein concentration in ec-yeast

Hi @carrascomj, minor issue and question on setting experimental protein concentrations in the yeast model.

  • Small issue: experimental.limit_proteins() fails to find the correct reaction in the ecyeast8 model. It assumes a format of f"prot_{protein_id}" where in the yeast model (unlike E. coli) it contains the compartment, e.g. f"prot_{protein_id}[c]". What do you think of relying on the df_prot for the uniprot to reaction mapping?
  • More general behavior question -- what is the difference in setting protein.concentration vs. protein.upper_bound ? Intuitively I would expect the former to fix the abundance, while the latter sets a maximum abundance. I'm noticing that when I explicitly set a concentration for a production enzyme and then optimize with a biomass objective, the protein has apparently 0 abundance in the solution. It's very possible I'm doing something incorrectly but thought I'd check in on the expected behavior.

ValueError in notebooks/proteomics_data_relaxations.ipynb cell 17 line 1.

Hello.

I got a ValueError in notebooks/proteomics_data_relaxations.ipynb cell 17 line 1.

Perhaps, it is lack of data about MW.

Could you tell me about error below.

Best regards.


ValueError Traceback (most recent call last)
/Users/userName/geckopy/simult_supp_material/notebooks/proteomics_data_relaxations.ipynb セル 17 line 1
----> 1 ev9_valid["MW"] = extract_proteins(None, prot_dict)["MW"]

File ~/.pyenv/versions/3.8.18/envs/geckopy/lib/python3.8/site-packages/geckopy/experimental/molecular_weights.py:194, in extract_proteins(model, all_proteins, key_fn)
192 df_prot["MW"] = 0
193 for index, row in df_prot.iterrows():
--> 194 df_prot.loc[index, "MW"] = _molecular_weight(row["Sequence"])
195 return df_prot[["uniprot", "protein_id", "MW", "Sequence"]]

File ~/.pyenv/versions/3.8.18/envs/geckopy/lib/python3.8/site-packages/geckopy/experimental/molecular_weights.py:95, in _molecular_weight(seq)
93 weight = sum(weight_table[x] for x in seq) - (len(seq) - 1) * water
94 except KeyError as e:
---> 95 raise ValueError(
96 f"'{e}' is not a valid unambiguous letter for proteins"
97 ) from None
99 return weight

ValueError: ''X'' is not a valid unambiguous letter for proteins

Uniprot API update

The API was apparently changed, causing extract_proteins() to break. Looking into fixes

Support for multiple protein pools

Description

geckopy currently supports adding a global protein pool or a protein pool to a handful of specified reactions but does not easily allow for adding multiple protein pools at the same time.

Multiple protein pools are wanted in mainly two assumptions/situations:

  1. The maximum capacity for heterologous expression is known, being a subset (or not) of the global protein pool.
  2. The comparments in a (eukaryote) model have associated maximum capacities, resulting in different protein pools, being subsets (or not) of a global protein pool.

Proposition

  • Graph data structure for the protein pools. One protein pool can take up to a percentage of its parent pool. There may be more than one disconnected graph (for when a global protein pool is not required).
  • The user constrains the pool (constrain_pool()) providing a set of proteins (like it is now, by the default all) and a parent pool (by default None, meaning the pool is a root). If a parent is provided, the pool will be taking p_total from the parent pool.

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.