merging https://github.com/opencobra/cobratoolbox with http://sourceforge.net/projects/opencobra/cobra-devel

158 views
Skip to first unread message

Ronan M.T. Fleming

unread,
Jul 31, 2013, 4:54:11 AM7/31/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Dear All,

some time ago, it was unilaterally decided that the matlab code on svn
for the cobratoolbox be split into two. Now, one version has
unilaterally been moved such that it is being hosted by github,
leaving the other using a separate version control software. Due to
the clear benefits of git/github, I have MANUALLY merged as much as
possible of the master version of
https://github.com/opencobra/cobratoolbox with
http://sourceforge.net/projects/opencobra/cobra-devel.

As the unilaterally chosen development model for the opencobra toolbox
hosted on github is for contributors to create a fork of the
repository in github, and then submit a pull request to have those
changes merged into the master version, the merged version is
available from my fork https://github.com/rmtfleming/cobratoolbox,
pending its merger with the master version.

During the effort to merge the two versions, there were some functions
that were by now so different, I did not dare to try to merge them.
Even if the output of testAll is positive for the respective tests,
this does not necessiarily mean that the merged code is perfect. What
is needed now are some volunteers, with expert knowledge of the
following functions, to do the merge.

More generally, my position is that we should aim that the master
version on github is truly the collaborative and collegial effort
between the community and therefore reduce the amount of major
unilateral decisions made concerning the project. Only this way will
the community more fully engage. The planning of the opencobra project
is something we should engage in together over the coming months so
that the direction of the project is decided democratically, with
voting proportional to the previous effort on the code.

Here are the problem files that I have not tried to merge:

convertCobraToSBML
convertSBMLToCobra
writeCbToSBML
fluxVariability

Here are merged files, but not sure that the merge is perfect, thought
they pass the test:
drawText
drawCbMap
drawFlux
setMapOptions
createTissueSpecificModel

Experts on these functions, please take a look, especially if you have
made your commits to cobra-devel in the past. Within 2 weeks, the
cobra-devel version will be depreciated. It was nice to overview all
of the improvements from the 384 commits, made by many dfferent people
over the past couple of years. Hopefully with the hosting on github,
the different forks of the cobratoolbox do not grow to be too
different from eachother. We are a relatively small development
community and should stick together.

By the way, this is a beautiful tool for manually merging two sets of
code: http://meldmerge.org/

Regards,

Ronan Fleming



Output of testAll:
Tests passed:
testBuildMPS
testDeletionStudy
testElementalBalance
testFBA
testFVA
testMOMA
testMaps
testModelManipulation
testOptKnock
testRobustnessAnalysis
testSampleCbModel
testgpSampler
testTissueModel
testpFBA
testDifferentLPSolvers

Tests not passed: - understandable as no NLP setup & no SBML
testC13Fitting
testGDLS
testGrowthExpMatch
testSBML
testSolvers



--
--
Mr. Ronan MT Fleming B.V.M.S. Dip. Math. Ph.D.
-----------------------------------------------------------------
Senior research associate (EN) == Chercheur (FR)
Luxembourg Centre for Systems Biomedicine,
University of Luxembourg,
Campus Belval,
7, avenue des Hauts-Fourneaux
Esch-sur-Alzette,
Luxembourg,
L-4362.
-----------------------------
Mobile: +352 621 175 112
Office: +352 466 644 5528
Skype: ronan.fleming
wwwen.uni.lu/lcsb/research/systems_biochemistry
-----------------------------------------------------------------

(This message is confidential and may contain privileged information.
It is intended for the named recipient only. If you receive it in
error please notify me and permanently delete the original message and
any copies.)

Ben

unread,
Aug 5, 2013, 12:29:44 PM8/5/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Thanks for the work, Ronan.

I'm actively working on convertSBMLToCobra at the moment. I'll take a look at that merge.

Also, I hope to attack the SBML writing in the next 6 months or so, so that will mean working on convertCobraToSBML and writeCbToSBML.

- Ben

Ben

unread,
Aug 6, 2013, 8:19:52 PM8/6/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Hi Ronan -

I was able to merge your updates to my master branch without conflict. My opencobra fork is at https://github.com/bheavner/cobratoolbox.git it also incorporated my updates to convertCobraToSBML.

FYI, I have rewritten the convertSBMLToCobra function, while retaining backwards compatibility with the legacyFlag option (which I have also added to the readCbModel function). This rewrite incorporates the newly vectorized functions parseSBMLAnnotation, parseSBMLNotesField, and parseBoolean. I've also added quite a bit of commenting in the code, and reformatted it for readability.

A primary goal in this rewrite was to keep backwards compatibility, so I didn't add any new fields or parse annotation differently than the COBRA currently does. However, I want to facilitate future standards-compliant annotation, so expect to keep working on that going forward.

This update rearranges the COBRA model structure by grouping metabolite and reaction information, and adds the following fields: metCompartment, unparsedMetAnnotations, rxnNotes, compartments, compartmentNames

This rewrite is an incremental step away from the legacy approach of parsing metabolite and reaction names for information that is now encoded in other fields in SBML. My intent is to be able to read old models, but in the future, improve the COBRA Toolbox support for writing models with updated SBML versions and levels (ie, move annotation from notes fields to annotation fields, and hopefully offload lots of annotation parsing from the COBRA Toolbox to the SBML Toolbox). As you know, this process of standards evolution is slow, and involves lots of conversation with SBML folks, so there's no immediate changes to SBML writing functionality.

Unlike the older code, this new code successfully imports the following fields from notes and annotations:
metCharge, metChEBIID, metKEGGID, rxnConfidenceScores

I have tested that this code works with the following models: iND750, iAF1260, recon2, and Yeast 6.

This code also modularizes the parsing of notes and annotations in a way that should facilitate future support for the SBML fbc and annotation packages.

I'm planning to attack adding support for reading and parsing models that use the SBML FBC package  next (though the Yeast consensus model is the only one I know of that uses it at the moment).

Please let me know if you come across bugs in the code, so I can get on fixing it!

-b

Ronan M.T. Fleming

unread,
Aug 7, 2013, 3:43:18 PM8/7/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Hi Ben,

thanks for helping to test the merged version. Hopefully this will be
the last time such a large set of bugfixes and incremental
improvements are to be merged with the master version. With your and
other peoples help testing the merged version, we should be able to
minimize any possible untoward effects of the merge.

Thanks for your efforts on integration with SBML. It would be great
that you can take care of the files
>>> convertCobraToSBML
>>> convertSBMLToCobra
>>> writeCbToSBML
from cobra-devel, to ensure anything beneficial in them is merged with
your version. That would only leave fluxVariability.m in cobra-devel
unmerged with the master git version. Lets try to get this merge done
and focus on maintaining the master git version to the highest level.

Ronan
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "COBRA Toolbox" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to cobra-toolbo...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

Ben

unread,
Aug 7, 2013, 5:03:44 PM8/7/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Hi Ronan -

It may be a bit before I get to the SBML writing functions (convertCobraToSBML and writeCbToSBML), but it's certainly on my todo list.

I'll be happy to look at the convertSBMLToCobra today and integrate any changes with my updated code. But I'm confused about what code you're merging, exactly - http://sourceforge.net/projects/opencobra/cobra-devel doesn't resolve for me.

- Ben

Ronan M.T. Fleming

unread,
Aug 7, 2013, 5:52:08 PM8/7/13
to cobra-...@googlegroups.com, p.mi...@cox.net
Hi Ben,

someone must have deleted the
http://sourceforge.net/projects/opencobra/cobra-devel in the last
couple of days, in anticipation that it is already been incorporated
into the github code. I have a copy of the last cobra-devel version. I
can send you the files.

Ronan

Ronan M.T. Fleming

unread,
Jan 9, 2014, 2:32:59 PM1/9/14
to cobra-...@googlegroups.com, Joern Behre (IFR), p.mi...@cox.net
Hi Joern,
have a look thorugh this thread. Ben probably has the latest versions
of the files you have problems with.
Regards,
Ronan
Senior research associate (EN) == Chercheur (FR),
Principal investigator,
Systems Biochemistry Group,
Reply all
Reply to author
Forward
0 new messages