Closed ugurdogrusoz closed 5 years ago
Hi, I'm quite interested in this project. How could I get started with this project?
Best way to get started is to contact the mentors directly by email. I just now updated their links:
Good luck!
Hi, the best way to get started would be to study the SBGN notation (sbgn.org) and libSBGN, which is a library for manipulation of SBGN models in Java and C++. Our goal is to either port the validation facilities in libSBGN to the client side (JavaScript) or make them available as a web service.
For those interested in this project, here are key steps that will be involved:
1: Get the Java Ant build.xml working from this repository (https://sourceforge.net/p/libsbgn/code/HEAD/tree/trunk/validation/); a strong attempt was made to make the SBGN validation programming language agnostic by making the validation report the product of XML stylesheet transformations. The build.xml goes through this process with a Java XSLT processor.
2: Get libSBGN Java library working (same repo) because you'll likely be using it, but get do Step 1 because libSBGN is just doing Step 1 in code and if you need to debug Step 1 will help.
3: Think about the web-service front-end, and how it'll hook up to the validator. You'll likely want to mimic: http://biopax.baderlab.org/ws.html (https://github.com/BioPAX/validator) because it 1) has many of the needed features, 2) is very similar in scope using a Java-based validator in the back-end, and 3) would simplify maintenance after the summer, especially because some of same people involved with SBGN are involved with BioPAX.
Is this project in progress?
this project wasn't chosen for GSoC. any particular reason you're asking?
I need to use such a service as part of my development process. Is there something else which allows you to validate SBGN files online?
libSBGN has support for this in Java and C++.
Yeah, I'm working with that. I just need something like a quick tool or service which will allow me to quickly validate one-off files. Thanks.
@devkhan, if you create a blank new project that has only one dependency, namely to libSBGN (Java) you will be able to implement a simple main function to run the validation. This worked fine in my tests.
@devkhan yes, it should be straightforward to use the validation functionality in the library from C++ and Java as @draeger pointed out. If you need to use these from some other platform (like from a web-based tool), however, things won't be straightforward (thus this project). this project is not supported by GSoC but I might be able to dedicate some resources over the summer to implement such a functionality. I'll let you know if we can manage to do so.
@ugurdogrusoz Thanks. :+1:
mostly done, closing
Background
LibSBGN is a library for reading, writing and manipulating Systems Biology Graphical Notation (SBGN) [3] maps stored using the SBGN-ML file format [4]. The library, available in C++, Java, and JavaScript [1][2] makes it easy for developers to add SBGN support to their tools, whereas the file format facilitates the exchange of maps between compatible software applications. Some implementations in the library also supports validation of maps, which simplifies the task of ensuring compliance with the detailed SBGN specifications.
[1] https://github.com/sbgn/libsbgn [2] https://github.com/sbgn/libsbgn.js [3] N. Le Novère et al., "The Systems Biology Graphical Notation", Nature Biotechnology, 27, pp. 735-741, 2009. [4] A.C. Villéger, M.P. van Iersel et al., "Software support for SBGN maps: SBGN-ML and LibSBGN", Bioinformatics, 28(15), pp. 2016-21, 2012.
Goal
With this project we aim to design and implement a web service for validation (semantic and syntactic correctness) of SBGN maps using one of these available implementations (probably the JavaScript one as a draft implementation has already been done). This means validation support available in other implementations needs to be added to this implementation as well. The validation output could be based on the SVRL XML schema. The rules that were checked and pass/fail status with some debugging information could then get converted to JSON. A web based user interface could also be provided for this service for non-programmatic use.
Difficulty Level 1
The project should be a fairly straightforward one.
Skills
JavaScript, XML (essential) SBGNML, Java or C++ (nice to have)
Public Repository
Not yet available
Potential Mentors
Alexander Mazein and Augustina Luna
Contact
Alexander Mazein, Augustina Luna