Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: organize repo as standard-GEM #232

Closed
4 tasks done
edkerk opened this issue Jun 20, 2020 · 13 comments
Closed
4 tasks done

refactor: organize repo as standard-GEM #232

edkerk opened this issue Jun 20, 2020 · 13 comments
Labels
fixed in devel this issue is already fixed in devel and will be closed after the next release format fix things associated to format of any of the model/data/script files

Comments

@edkerk
Copy link
Member

edkerk commented Jun 20, 2020

Description of the issue:

Efforts are made to standardize the format of [Git(Hub)] repositories containing genome-scale models: standard-GEM. This is being discussed and formalized at https://github.com/MetabolicAtlas/standard-GEM. yeast-GEM largely already complies with standard-GEM, so applying the latest guidelines will not result in drastic changes.

Any comments on the standard-GEM format should be discussed on that repo: https://github.com/MetabolicAtlas/standard-GEM/issues.

Main changes:

Note that this is a non-exhaustive list, and standard-GEM is still under development.

  • Rename folders (ComplementaryScripts --> code; ComplementaryData --> data; modelFiles --> model).
  • Replace folder names in all scripts (should be no problem due to uniqueness of the old folder names).
  • Refactor minor changes README.md.
  • Additional changes specified in .standard-GEM.md template.
@BenjaSanchez BenjaSanchez added the format fix things associated to format of any of the model/data/script files label Jun 22, 2020
@BenjaSanchez BenjaSanchez added the wip work in progress label Jun 25, 2020
BenjaSanchez added a commit that referenced this issue Jun 26, 2020
@BenjaSanchez
Copy link
Contributor

@edkerk @mihai-sysbio I realized a problem (in this repo) with changing /modelFiles to /model: A condition for the memote report to work properly when showing the project's history is that the model's .xml path remains unaltered: So if we would change the model path, we would only be able to see improvements in memote from that moment onwards, losing our previous history. Do you think this is worth it? Personally I don't have strong feelings towards either direction, but I'm wondering which would be the advantage of having the path be /model instead of /modelFiles (other than it looks much better)

@edkerk
Copy link
Member Author

edkerk commented Jun 26, 2020

/model looks better indeed :), but it would also be good to have yeast-GEM follow the standard-GEM standard. Would it work if we include a symbolic link of modelFiles pointing to model for the purpose of memote?

@BenjaSanchez
Copy link
Contributor

but it would also be good to have yeast-GEM follow the standard-GEM standard

I guess that was my question: what would be the advantage of following said standard? It will probably take some extra work on the yeast-GEM side (solving this memote problem + some conflicts with master), so would be good to know the benefits of doing it :)

Would it work if we include a symbolic link of modelFiles pointing to model for the purpose of memote?

No idea, but I'm not a fan of having both folders model and modelFiles, IMO would look confusing.

@Midnighter would it be possible to adapt the travis deploy script to catch this file migration when computing the history report? e.g. try to run memote on model/yeastGEM.xml and if not possible try with modelFiles/yeastGEM.xml? If not, is it a feature that you have considered adding?

@mihai-sysbio
Copy link
Member

Let me see if I understood the issue: the path to the .xml file is in the memote.ini. If the /modelFiles gets renamed to /model, that change would have to be reflected into an update in that file.
When running

memote report history

is the behaviour that the latest version of the model gets added to the database, or that all previous versions are run sequentially?

Also, from what I'm seeing in the gh-pages branch, neither history_report.html nor results.db seem to have been updated. Maybe it wouldn't be such a bad time to migrate to GitHub Actions (not that it would be required in any way, but it would be part of the same platform).

@mihai-sysbio
Copy link
Member

@BenjaSanchez following a standard that is adopted across open-sourced GEMs facilitates automation, be it integration into different websites or workflows. If we were to imagine that such a standard is already in place, the standard could eg be taking care of running Memote on all releases in that repo that follow said standard, without expecting users to understand the intricacies of having automation and gh-pages branches and a Travis account. So by joining a standard, everybody who sees such a GEM repository can expect the same thing, while benefiting from a simple setup. In essence, it's not too far from having an SBML format, but this is one level of abstraction higher.

@BenjaSanchez
Copy link
Contributor

@mihai-sysbio sounds indeed very nice. As the shift from modelFiles to model is rather quick to do on the yeast-GEM side, perhaps an easy solution would be to keep modelFiles as it is right now, and to make the transition to model as soon as the plans you mention become implemented? That will give us more time to figure out the proper memote implementation :)

is the behaviour that the latest version of the model gets added to the database, or that all previous versions are run sequentially?

not really sure how it works: maybe @Midnighter can shed some light here. Hopefully it is the former, so that we can run the history for everything so far in /modelFiles, and it stays there once we switch to /model

from what I'm seeing in the gh-pages branch, neither history_report.html nor results.db seem to have been updated

yes, as the branch of memote has still not been merged (#162 was in standby). I will be working on re-implementing it in the coming weeks now that BiGG ids are implemented and the model can be properly loaded with cobrapy.

@mihai-sysbio
Copy link
Member

I am great fan of how yeast-GEM is on the forefront of open-sourcing, and how it has inspired other GEMs to follow suit. And yeast-GEM already follows a setup that standard-GEM is based on, so the adoption should be pretty straightforward (short to-do list in OP). But, to be direct, the current setup is closed-source, which is painful for others to copy-paste, and prone to errors (forgot to copy file, or misnamed file - I've heard this directly from other GEM authors). With the formalization of the adoption of a standard, it would be a lot easier yeast-GEM to continue to inspire other GEMs, like it has already done for Human-GEM.

@BenjaSanchez the automated validation mentioned above in the thread needs some repositories to start adopting the standard (chicken and egg). It looks like Human-GEM might take the lead on standardization - it has already enabled proof of concept standard-GEM automated validation with Actions. These is also an issue for automated validation to contribute to - any feature there (eg inspired from #162) will benefit all GEMs following the standard.

Another core feature of the yeast-GEM setup I value is the git flow, with develop and feat branches allowing work to be integrated gradually into master. This discussion of folder renaming makes a lot of sense once we understand the implications of merging into master, and potentially breaking feat/memote, but it shouldn't make any difference for the current branch.

@BenjaSanchez
Copy link
Contributor

@mihai-sysbio nice to see there is some automated validation starting in Human-GEM, would be good to have that here as well. As soon as it is safe to switch from modelFiles to model we can proceed :)

@BenjaSanchez BenjaSanchez added standby work somewhere else is needed before advancing question ideas/feedback from other people would be appreciated and removed wip work in progress labels Jun 29, 2020
@BenjaSanchez
Copy link
Contributor

After a call with @Midnighter I confirmed that indeed we can switch the model file path, but only after memote is running in the repo (as otherwise the history report command won't work for all of the old commits). Currently there's issue opencobra/memote#689 that needs to be handled but as soon as that is done we can move forward.

@mihai-sysbio I like your idea of moving from Travis CI to GH actions (I read online that it performs faster, which is crucial for our setup), however I have no experience with the latter. Would you be interested in helping me to set it up? We can have a call to discuss the nuts and bolts ;)

@edkerk
Copy link
Member Author

edkerk commented Apr 6, 2021

With opencobra/memote#689 closed, yeast-GEM can be transferred to standard-GEM?

@mihai-sysbio
Copy link
Member

With the adoption of standard-GEM there would be some breaking changes because of the model folder. There has been work in PRs #236 and #239 to get some testing/validation in place; my suggestion would be to merge in those first.

@edkerk edkerk mentioned this issue May 14, 2021
3 tasks
@edkerk edkerk added fixed in devel this issue is already fixed in devel and will be closed after the next release and removed question ideas/feedback from other people would be appreciated standby work somewhere else is needed before advancing labels Jun 29, 2021
@mihai-sysbio
Copy link
Member

mihai-sysbio commented Jun 30, 2021

With the merging of #236, #239 and recently #257, it doesn't look like there's anything else to be done in order to close the issue.

@edkerk
Copy link
Member Author

edkerk commented Jun 30, 2021

Will close when merged with master

@edkerk edkerk closed this as completed Jul 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed in devel this issue is already fixed in devel and will be closed after the next release format fix things associated to format of any of the model/data/script files
Projects
None yet
Development

No branches or pull requests

3 participants