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

Validation of spatial systems biology models in Java™ #120

Closed
draeger opened this issue Jan 31, 2018 · 25 comments
Closed

Validation of spatial systems biology models in Java™ #120

draeger opened this issue Jan 31, 2018 · 25 comments

Comments

@draeger
Copy link

draeger commented Jan 31, 2018

Background

SBML(Systems Biology Markup Language) has several extension packages to extend its capability. One of its extension is called Spatial Processes (spatial) which supports for describing processes that involve a spatial component, and describing the geometries involved. SBML spatial extension enables users to build a spatial model and run a spatial simulation. The Java™ library JSBML provides source code for reading, manipulating, and writing models in this format. However, a validation function is still missing. Since the spatial package has only recently been completed, updates are needed to JSBML to ensure that the implementation exactly reflects the latest specification.

Goal

In this project, the Java implementation of the spatial modeling package for SBML will be updated and a full validation function will be implemented for this package.

Difficulty Level 1

It is not necessary for this project to have experience with spatial modeling, because in this project only the data structures need to be manipulated that experts in the field have designed according to their needs. We can, therefore, rely on the specification and look at it from the perspective of computer science students.

Skills

Understanding of the concepts of object-oriented programing and Java in particular.
Java 7 or 8 (essential)
Some understanding of XML (nice to have)

Public Repository

JSBML: https://github.com/sbmlteam/jsbml/

Potential Mentors

Akira Funahashi (@funasoul)
Nicolas Rodriguez (@niko-rodrigue)
Lucian P. Smith (@luciansmith)
Andreas Dräger (@draeger)

Contact

Andreas Dräger

@CharukaK
Copy link

Hi,
I'm a Computer Science undergraduate currently studying in my 3rd year, and I'm interested in working on this project what work should I do first to get an understanding of this project?

@draeger
Copy link
Author

draeger commented Feb 21, 2018

Hi @CharukaK, great to see you're interested in this!

This work focusses on spatial modeling approaches, e.g., simulations of molecular movements in a three-dimensional cellular environment. This can be more precise and take additional features of biological systems into account compared to models based on ordinary differential equations (which implicitly assume cells to be homogeniously structured).

But don't worry too much about the maths, because in this project, you will focus more on technical aspects of the formalism that has already been defined by experts in the field. The best way to prepare for this is to take the latest specification of the spatial modeling package for SBML, and to look through the list of validation rules at the end.

Could you please contact the mentors via e-mail for receiving more detailled instructions?

@CharukaK
Copy link

Hi @draeger, Thanks for the quick reply, I will refer to the documentation you provided and will contact the mentors via email.

@ChavaVennela
Copy link

Hi,
I'm a sophomore pursuing Computer Science in Amrita School of Engineering, India. I'm interested in working on this project. I contacted the mentor through mail, they redirected me here. It would be a great start for me if you suggest me with a good first bugs I can work on.
Thanks!!

@niko-rodrigue
Copy link
Member

Hi @ChavaVennela, before starting fixing bugs, you should start to get more familiar with JSBML, SBML and in particular, with the spatial package. In the JSBML github wiki, you have as well a page describing how the validation process work.

@draeger
Copy link
Author

draeger commented Mar 4, 2018

Here you can find the proposal template that NRNB recommends to all students: https://tinyurl.com/nrnb-gsoc-application-template. It is also a good idea to draft a proposal early on and to share it with all potential mentors who will give you more detailed feedback if you can ask specific questions.

@ChavaVennela
Copy link

Hi @niko-rodrigue, Thank you for providing a suggestion to start with, I will refer to the documentations on topics related to JSBML, SBML, spatial packages and concept of validation.

@Sylfrena
Copy link

Sylfrena commented Mar 7, 2018

Hi!
I am a Computer Science undergraduate currently studying in my sophomore year. I would love to work on this project. It would be of great help if you could provide me with a few suggestions to start out with in order to contribute to this project.
Regards,
Sumera.

@protoncluster
Copy link

protoncluster commented Mar 18, 2018

Hi @draeger I am an Engineering student of BioTechnology as major currently studying in my sophomore year and i want to work on this project , i have decent command in Java 8 and of biology also. I am highly interested in this project but i am bit confused to how to contact the mentors of the project, so can you please assist me how to contact them

Regards
Indra

@draeger
Copy link
Author

draeger commented Mar 18, 2018

@indrapatel247 thanks for your interest in this topic! Most tips for a successful application you can already find in this threat above (just look through some older posts and you will find the link to the application template and other resources). As you can also see, this topic received already quite some interest. It is, therefore, recommendable to look through the list of available issues if you can find another item where you have fewer competitors.

Another hint: you can easily find my e-mail address by checking my GitHub profile. If you e-mail me directly, I'll put @funasoul and @niko-rodrigue in CC in my reply, and we can discuss subsequent steps. Best of luck!

@niko-rodrigue
Copy link
Member

For those feeling like tackling a JSBML issue, you can have a go at https://www.pivotaltracker.com/story/show/73384934. It should be fairly easy to implement, you need to clone the jsbml repo and submit a pull request with your solution.

@bhavyejain
Copy link

Hi @draeger
Is this issue still open for GSoC 2019?
Thanks.

@draeger
Copy link
Author

draeger commented Feb 1, 2019

@bhavyejain, to my knowledge: yes! @funasoul, could you please confirm?

@funasoul
Copy link

funasoul commented Feb 2, 2019

yes!

@NomadXD
Copy link

NomadXD commented Mar 8, 2019

@draeger @niko-rodrigue @funasoul Hello I'm Lahiru and I'm a Computer Science Engineering undergraduate from University of Moratuwa, Sri Lanka. I went through docs of SBML,JSBML and also the jsbml-spatial package and have a fairly good understanding about them. And also I had a look at the validation and constraints info in the JSBML Github wiki and it was really helpful. I cloned the repo and went through some implemented constraints(constraint 21102 by @niko-rodrigue ) and have some clarifications about the getValidationFunction()

So my question is how do we know about the logic to implement for different SMBLErrorCodes? Is there any sources that you recommend regarding that? Thank you!

@niko-rodrigue
Copy link
Member

@NomadXD At the end of the SBML core specifications, you will find an appendix where all the validation rules (or constraint for JSBML) are described.
To know how the auto-generated rules would look like for spatial, you can have a look at the document for an other SBML package in development: https://drive.google.com/file/d/17RttI-dgfW8jGIVJigUCU7AamJ8Y9LCS/view?usp=sharing (Appendix A, page 33). For example, "Rules for UncertValue object". @luciansmith is working on the spatial specifications and will be able to generate some equivalent rules for spatial before the project start.
You then might have to add some rules that are only define in the text of the specification and cannot be automatically generated, like for an SBML compartment, the spatialDimensions attribute can only be 0, 1, 2, or 3 in SBML Level 2.

@NomadXD
Copy link

NomadXD commented Mar 9, 2019

@niko-rodrigue Thanks a lot for the info!. And I went through the SBML validation rules and also had a look at SBML Error codes in (http://sbml.org/Facilities/Documentation/Error_Categories). So what I have to do in a high level is,

  1. Select an unimplemented constraint from the the constraints list.

  2. Add suitable and relavant SBML error codes for the selected constraint in the addErrorCodesForCheck() method.

  3. For the each error code added in the addErrorCodesForCheck() method, implement a function inside getValidationFunction() method to validate the specific error code.

So if that is correct, shall I start writing a validation for an unimplemented constraints? Any suggestions?

By the way how do we know which error codes to add for a certain constraint validation?

Thanks in advance!

@draeger
Copy link
Author

draeger commented Mar 9, 2019

@NomadXD, what you suggest sounds like a good plan. Strong proposals are written in a way that reviewers see that the student has a clear understanding of the project and what to do. By trying out how one example works, you can gain the experience needed to prepare your proposal.

It also makes sense to contact us (@niko-rodrigue, @funasoul, @luciansmith, and myself) via e-mail so that we can give you individual hints for preparing your proposal document.

@NomadXD
Copy link

NomadXD commented Mar 10, 2019

@draeger Okay thanks a lot for the quick response.I will spend couple of days playing with the stuff and understanding things more deeply and then I'll start with the proposal.If I encounter any problems I'll send you an email.

@NomadXD
Copy link

NomadXD commented Mar 14, 2019

@draeger So I was going through the SBML spatial docs (version 1 release 0.90 ) and had a look at the classes in the spatial package. For each of the classes there are some set of rules and constraints they have mentioned in the docs. And for most of them there were UML diagrams that describe the structure.But in the validation part there were only 5 rules and the docs is not completed yet I think.

So as @niko-rodrigue said I can wait until @luciansmith finishes the spatial specification part and get the auto generated rules from that. Or else in the mean time I can go through the docs and figure out the related rules and constraints but for some classes I still have a high level idea only and will need your help to verify my work. So if that's a no, can u assign me some work ? So that I can be more familiar with the stuff. Thanks !

@draeger
Copy link
Author

draeger commented Mar 14, 2019

@NomadXD, in fact, @luciansmith is facing a submission deadline for a revised version of this specification that is even slightly before at the time when your proposal is also due. Therefore, you can expect more rules to be made explicit on time and don't have to worry about missing statements.

The best way of using the time would be to

  1. Create a shared Google Document to which all mentors have access. We are here to help; don't worry what you write there, just gather your ideas about the project. We will be happy to provide you with feedback so that you can create a competitive project description.
  2. Check out the JSBML library (if you haven't already done so) and look into the validation functions for other packages to better understand how it works for spatial. Maybe try something simple out. You may create your own branch. The better you know what you're doing, the more easily you can describe it in your document.

I also recommend using e-mail communication rather than writing forum comments so that we can provide you with more specific comments.

I hope this helps!

@luciansmith
Copy link

luciansmith commented Mar 14, 2019 via email

@NomadXD
Copy link

NomadXD commented Mar 16, 2019

@draeger So as you suggested I have created a gmail thread and have shared it with all the mentors.And also I have created a google doc to share my project ideas and that also I have shared with all the mentors.

@luciansmith Thanks for the quick response. I have already started to read the new docs.

@shalinshah1993
Copy link

For some of you interested in working with NRNB for this summer, this other issue is also very cool if that excites you. The issue requires JAVA knowledege. More details can be found in the issue description.

#101

@khanspers
Copy link
Contributor

Active GSoC 2019 project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests