Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 12 13:46

    Midnighter on master

    fix: correct substrate checking… test: add two test cases assert… fix: correct logic also for dea… and 2 more (compare)

  • Jun 12 13:46

    Midnighter on develop

    chore: prepare release notes fo… (compare)

  • Jun 12 13:46

    Midnighter on 0.13.0

    chore: prepare release notes fo… (compare)

  • Jun 12 13:21

    Midnighter on develop

    fix: correct substrate checking… test: add two test cases assert… fix: correct logic also for dea… and 1 more (compare)

  • Jun 12 09:02

    Midnighter on master

    chore: require newer cobra, rem… fix: update spreadsheet reading… fix: better handle infeasible o… and 3 more (compare)

  • Jun 12 09:02

    Midnighter on develop

    chore: prepare release notes fo… (compare)

  • Jun 12 09:02

    Midnighter on 0.12.1

    chore: prepare release notes fo… (compare)

  • May 26 14:13

    Midnighter on develop

    docs: add missing docstring to … style: fix flake8 ignore commen… (compare)

  • May 26 13:51

    Midnighter on develop

    chore: require newer cobra, rem… fix: update spreadsheet reading… fix: better handle infeasible o… (compare)

  • Apr 26 09:12
    Midnighter commented #712
  • Apr 26 09:11
    Midnighter commented #717
  • Apr 26 09:11
    Midnighter closed #717
  • Apr 25 19:52
    Midnighter commented #717
  • Apr 25 14:17
    carrascomj commented #717
  • Apr 25 01:01
    niazche commented #717
  • Apr 24 22:31
    Midnighter commented #717
  • Apr 24 19:01
    niazche commented #717
  • Apr 24 18:32
    Midnighter commented #717
  • Apr 24 06:56
    niazche commented #717
  • Apr 24 06:52
    niazche commented #712
Moritz E. Beber
@Midnighter
Hi @ensakz, Thank you for the report. That's definitely concerning. I have not experienced this issue myself. Have you tried reloading the page in the same browser? Does the issue occur again every time?
Sanzhar Naizabekov
@ensakz
@Midnighter yes, I tried. It seems the problem is consistent
Moritz E. Beber
@Midnighter
@ChristianLieven have you seen this before? I'm not sure how to debug that right now since it doesn't occur for me. @ensakz I assume you're on Windows 10?
Sanzhar Naizabekov
@ensakz
@Midnighter i checked report on Mozilla on Linux, and on Chrome and Microsoft Edge on windows 10
Melclic
@Melclic
Hello. I am a bioinformatician working on a pan-European project called IBISBA (https://www.ibisba.eu). We are developing a platform for metabolic engineering tools using the Galaxy workflow. One of the major feature of the platform is that all communication between the tools is done using the SBML format. I am very interested in your tool because of the report feature. My questions are the following. Do you know of projects or people that integrated your tool into Galaxy? I am also interested in the version control of the model. Does it work only on GIT version control? Do you have any additional information on that aspect of the project. Thanks a lot.
Christian Lieven
@ChristianLieven
@ensakz what is your screen's resolution? I’ve checked for scaling some but not all resolutions consistently. Could you try the same report on a different screen, or send us the generated HTML for debugging?
Christian Lieven
@ChristianLieven
Hi @Melclic thank you for your interest! Sorry, I am not aware of anyone integrating memote into Galaxy yet. Yes, memote so far is tightly integrated with git. For more information on that you could take a look at the biorxiv publication: https://www.biorxiv.org/content/10.1101/350991v1, git repositories that use memote: https://github.com/ChristianLieven/memote-m-capsulatus or our documentation that describes the commands to set up the integration: https://memote.readthedocs.io/en/latest/getting_started.html#ci-tested-online-and-public-workflow
Sanzhar Naizabekov
@ensakz
@ChristianLieven I updated memote and the issue seems to be resolved. My memote version is 0.9.11. I think the problem with html parsing was due to some package inconsistencies in my python environment. The issue seems to be resolved for me for now
Snorre Sulheim
@sulheim
Is there any way to get the report as a nice pdf instead of html? I've tried printing the html-page, but it doesn't look good. For submitting the report as supporting information when publishing a GEM this would be a very useful feature.
Sanzhar Naizabekov
@ensakz
@sulheim I think this will be available in the future releases of memote
Christian Lieven
@ChristianLieven
Hi @sulheim I’m sorry, there is no way right now since there is a lot more complicated logic involved in the HTML (expanding and contracting of the descriptions for instance). If you’d like this feature in the future, please open an issue on Github so that we don’t lose track of it!
You could always ask if you can include the report as HTML in supplementary data that is published along your manuscript inside a ZIP file for instance or track it in Github and reference it using Zenodo. I’ve at least seen that done before so it might work for your journal too.
Hao Wang
@Hao-Chalmers
I was wondering if the Yaml format file can be the input of memote?
Moritz E. Beber
@Midnighter
At the moment it can't but it would be very straight forward to add. PR welcome :wink:
Sanzhar Naizabekov
@ensakz
Hi everyone, when I looked at memote documentation, I just found out that test for dead end metabolites (test_find_deadends(model)) define dead-ends as "metabolites that can only be produced but not consumed by reactions in the model" whereas Thiele and Palsson GEM reconstruction protocol define dead-ends as "metabolites that are only produced or consumed in the network". I just wanted to write this to ask whether there are any thoughts about implementation of Thiele and Palsson definition of dead-ends for memote? Thank you
Christian Lieven
@ChristianLieven
I don’t have access to the protocol currently but I think by that they are just combining what we call ‘dead-end’ and ‘orphan’ metabolites. So you’d get the same results to that step in the protocol if you take the combined output of test_find_deadends(model) and test_find_orphans(model)
junwony
@junwony
스크린샷 2020-08-03 오후 3.36.33.png
Hi, I am trying to use memote using the terminal, following the instructions, and however, my terminal stops working as the screenshot I posted above.
Can anyone please help me with this problem?
Moritz E. Beber
@Midnighter
Hi @junwony are you testing a large GEM? And maybe you are using the default GLPK solver? In the consistency tests there are two mixed integer problems that will take a long time to solve for large models. You could either install CPLEX or Gurobi and wait a while (could take an hour) or you set a solver timeout with the option --solver-timeout 30 for thirty seconds.
Setting the timeout will then abort the solving process and lead to a failure but most tests will be unaffected.
junwony
@junwony
Yes, I guess my GEM is a bit large, I will try again with your advice! Thank you very much.
Moritz E. Beber
@Midnighter
@junwony out of curiosity, did any of these suggestions help you? Which one did you choose?
uliebal
@uliebal

I have difficulties understanding the outcome for the test of stoichiometric inconsistencies. I checked the article by Gevorgyan et al. to get the basic knowledge, but I would appreciate support for my model. Memote reports a lot of inconsistencies (score is only 17%) but at least charges and mass are balanced nearly >95%. For example, I would like to understand why fumarate (fum[c]) is unbalanced. For this, I extract all associated reactions:
ARGSL: argsuc[c] <=> arg_L[c] + fum[c]
ADSL1r: dcamp[c] <=> amp[c] + fum[c]
ADSL2r: 25aics[c] <=> aicar[c] + fum[c]
FUM: fum[c] + h2o[c] <=> mal_L[c]

Is it possible to appreciate the stoichiometric inconsistency with the naked eye from these reactions?
Thanks a lot for any suggestions.

Moritz E. Beber
@Midnighter
It's not possible to identify from these reactions alone (for me at least). It is also about the relationships between the other compounds within the metabolic network.
Can you disclose the model or the exact test result data?
Jeremy Zucker
@djinnome
Hi @uliebal You can answer the question about unbalanced equations by using cobra.core.Reaction.check_mass_balance()
Moritz E. Beber
@Midnighter
If a reaction is unbalanced because of either charge or chemical formula (mass) that method makes it rather straight forward indeed. If it's detected by the method of Gevorgyan et al. then it's often not easy.
uliebal
@uliebal

@djinnome I checked the mass balance with cobrapy, then I get around 360 unbalanced reactions. Does the stoichiometric inconsistency analysis in memote also check mass balances as in cobrapy check_mass_balance based on charge and chemical formula? Among the 360 unbalanced reactions mentioned, nearly 300 belong to exchange and biomass reactions, which I dont know how to balance.

If the stoichiometric inconsistency also includes detailed mass balance, why is the memote mass balance of my model as high as 95%?

@Midnighter the full memote report and model is here.

Moritz E. Beber
@Midnighter

@uliebal I've generated a full report for the model (based on latest memote in develop branch). Good news are that all the metabolites in the model have a formula and charge annotation. Memote also manages to identify 10 biomass reactions.

Problems:

  1. The many biomass reactions may be a mistake as it seems you're working with a split biomass approach. Maybe all of them are annotated with SBO:0000629 when only one of them should be?
  2. None of the biomass reactions seem to produce 1g/mmol/h. Partly this may be because of split biomass, partly because of incomplete chemical formulas, or the biomass formulation may be incorrect.
  3. There are three tests that relate to consistency of the metabolic network. Mass balance checks each individual reaction and compares the chemical formulas of substrates and products. Boundary reactions (exchanges, sinks, sources) and biomass reactions are generally ignored for this since they are pseudo reactions defined to be unbalanced. You can see that 69 reactions are mass unbalanced. This may be because of actual mistakes or because of incomplete chemical formulas.
  4. Similar to mass balance but looking at charges, 71 reactions seem to have unbalanced charges.

I would start with fixing as many of the mass and charge unbalanced reactions as possible. And then re-running memote.

Lastly, there is the stoichiometric consistency which is independent of charge and formula information. It basically asks the question, "Can this metabolic network support positive mass for all metabolites?" I would only worry about the information herein after you have fixed everything else.

uliebal
@uliebal
@Midnighter thanks a lot for your commitment!!!!
There are these many biomass reactions because it was adapted to different substrates and growth rates. Our model is actually an adapted model for P. pastoris called iMT1026.
Strangely, I have growth when I use the SBML as such...
We will have a look on the unbalanced reactions, I suppose solving these might also help with the stoichiometric imbalance. This is becoming challenging, we picked the easy imbalance where addition of protons to the reactions was sufficient. The remaining imbalances are tough to solve, because changing them individually first leads to even worse scores.
I am very happy for your support! :o)
Moritz E. Beber
@Midnighter

Strangely, I have growth when I use the SBML as such...

I'm not saying that there shouldn't be growth but since all fluxes are defined in terms of mmol/gDW/h, the biomass gains are badly defined. You can look at the test description for more information.

Moritz E. Beber
@Midnighter

The remaining imbalances are tough to solve, because changing them individually first leads to even worse scores.

@uliebal I would not pay too much attention to overall scores. If you can elementally and charge balance each of those reactions, you will reach full stoichiometric consistency. If your network is not consistent even after 100% of your reactions are charge and mass balanced, please open an issue on memote. It's most likely because an unbalanced pseudo reaction was not correctly identified.

Melclic
@Melclic

Hello memote community! I am Melchior du Lac, a postdoc at a French research institute (INRAe) that is working on developing a metabolic engineering workflow platform attempting to bring together many tools and computational analysis techniques useful for the community (https://galaxy-synbiocad.org/).

I am interested in generating a dynamic report for the different types of analysis we are doing on heterologous pathways (right now we have FB, thermodynamics as well as some chemoinformatics and enzymatic information). My initial though was to use a dynamic Latex that fills part of the document upon reading SBML files (we have in-house annotations). However Salvy Pierre from EPFL suggested Memote.

My understanding is that Memote is about SBML sanity checking and displaying that information to the user. How easy would it be to branch such a project for more specific user information? Do you think its a good idea? Any suggestions? Thanks!

Moritz E. Beber
@Midnighter
It's not quite clear to me yet what kind of content you want your report to contain. Memote not only checks the static SBML but performs a number of different simulations in order to test the metabolic network. We have defined a standardized way how to specify such tests and the memote report (at the moment an Angular app) can display the outcomes. You can add your own tests to memote and they will be displayed, too. You can read more about it custom tests here https://memote.readthedocs.io/en/latest/custom_tests.html
I don't know if this fits the format of what you have in mind, though.
Melclic
@Melclic

@Midnighter , I was on the equilibrator Gitter asking @elad.noor_gitlab about equilibrator :). So thermodynamic information is an example of the output (we use an in-house annotation to store that information within SBML files).

The information I would like to display is after analysis, I wasn't thinking of Memote performing the analysis. The fact that you can perform custom tests is very interesting however! Perhaps we can go down that route. I'll look into it. Thanks!

Moritz E. Beber
@Midnighter
The way the memote report works is that we generate a specific JSON data structure. If you can massage your analysis outcome into that format, the report will be able to display it. First you should check if the memote report suits your layout needs, though.
Melclic
@Melclic
yes I have been playing around with Memote and you are right that there are some limitations to the way the information is displayed. I was looking into how hard it would be to branch the project to add extra info with graphics (svg). However it might be an overkill
Moritz E. Beber
@Midnighter
If you just want to build some kind of report (PDF or HTML), I can highly recommend Rmarkdown.
Melclic
@Melclic
Very cool, especially the dashboard feature. Thanks!
Sanzhar Naizabekov
@ensakz

Hi everyone, when I registered new model repository using memote I received the following message from Github: "
GitHub noreply@github.com
3:35 PM (1 hour ago)
to me

Hi @ensakz,

On October 14th, 2020 at 06:35 (UTC) you or an application you used recently accessed the deprecated Authorizations endpoint on the GitHub API with the useragent Memote Query.

We will remove the Authorizations API endpoint on November 13, 2020. If you accessed the API via password authentication, then we recommend you use the web flow to authenticate. Please check that your app uses the web flow for authentication

You can learn more about these changes by visiting our developer blog

Thanks,
The GitHub Team
"

Will it impact memote and github synchronization or not? Best regards, Sanzhar
Moritz E. Beber
@Midnighter
Thank you for the notice @ensakz, yes it sounds like it will affect memote but only the repository creation part.
maxvthof
@maxvthof

Hi everyone! I'm trying to add annotations to a model. However, when I upload the model on Memote, the annotations are not recognised. Could somebody help me with what I am doing wrong? Thanks for your help in advance! (see code for adding the annotations in a jupyter notebook below. rxn_info is the df with annotations)

--

# add annotations reactions
for rxn in rxn_info.index.values:
    reaction = model.reactions.get_by_id(rxn)

    # Add database annotations when present
    for annot in ['RHEA', 'BioCyc', 'MetaNetX (MNX) Equation', 'KEGG Reaction',
                  'SEED Reaction', 'EC Number', 'Reactome Reaction']:
        if pd.isnull(rxn_info.loc[rxn, annot]):
            pass
        else:
            reaction.annotation[annot] = [rxn_info.loc[rxn, annot]]
Eduard Kerkhoven
@edkerk
Your annotation types should be valid identifiers.org prefixes, see: https://registry.identifiers.org/registry. For "KEGG Reaction" this should for instance be "kegg.reaction".
maxvthof
@maxvthof
Thanks, that makes a lot of sense
Eduard Kerkhoven
@edkerk
Can I easily get the total score from a memote snapshot? I can't find it in the json, nor in a flat-text format in the html file. I would like to run memote, and include the total score in an overview of model stats as part of a README.md file.
4 replies
AlfredoRA
@AlfredoRA
Hello! when I use memote in the graphical interface with the iRC1080 model in .json and .xml format it always reports: "{" message ":" Internal server error "}". Do you know what the reason may be? If I try to use it on the command line will it be better? my command line knowledge is intermediate.
1 reply
Silvio Waschina
@Waschina
Hi Memote-Community! I was just wondering how to best handle Light/Photons in models. In some BIGG models (e.g. "iJB785"), photons have a sum formula of "Z", which causes mass imbalances in light-dependent reactions according to memote. Other sum formulas such as an empty string (""), or null,NA, often cause errors/warnings in sbml validators. Any advise/thought is highly appreciated.
5 replies
niccolototis
@niccolototis

Hi there, I am new to memote and this community.

I am trying to use it to test the accuracy of a manual curation of a GSMM other people worked on before me, but I am getting an error which I don't know how to work around. I'd be grateful if you could offer me a hint, thanks

When I run
$ memote report snapshot --filename "report.html" path/to/model.xml

I get

============ 90 failed, 38 passed, 19 skipped, 4 warnings in 245.83s (0:04:05) =============
Writing snapshot report to 'SG_report_memote.html'.
critical: The memote result structure is incompatible with the JSON standard.

And below:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/bin/memote", line 8, in <module>
sys.exit(cli())
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1137, in call
return self.main(args, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback,
ctx.params)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/click/core.py", line 763, in invoke
return __callback(
args, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/suite/cli/reports.py", line 175, in snapshot
file_handle.write(api.snapshot_report(results, config))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/suite/api.py", line 162, in snapshot_report
return report.render_html()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/suite/reporting/report.py", line 83, in render_html
report_type=self._report_type, results=self.render_json()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/suite/reporting/report.py", line 78, in render_json
return jsonify(self.result, pretty=pretty)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/utils.py", line 275, in jsonify
raise_with_traceback(error)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/future/utils/init.py", line 446, in raise_with_traceback
raise exc.with_traceback(traceback)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/memote/utils.py", line 269, in jsonify
return json.dumps(obj,
params)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/json/init.py", line 234, in dumps
return cls(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
ValueError: Out of range float values are not JSON compliant

9 replies