nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
115 stars 38 forks source link

Web service for SBGN map validation #10

Closed ugurdogrusoz closed 5 years ago

ugurdogrusoz commented 8 years ago

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

butzhang commented 8 years ago

Hi, I'm quite interested in this project. How could I get started with this project?

AlexanderPico commented 8 years ago

Best way to get started is to contact the mentors directly by email. I just now updated their links:

Ugur Dogrusoz, Augustina Luna

Good luck!

ugurdogrusoz commented 8 years ago

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.

cannin commented 8 years ago

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.

devkhan commented 8 years ago

Is this project in progress?

ugurdogrusoz commented 8 years ago

this project wasn't chosen for GSoC. any particular reason you're asking?

devkhan commented 8 years ago

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?

ugurdogrusoz commented 8 years ago

libSBGN has support for this in Java and C++.

devkhan commented 8 years ago

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.

draeger commented 8 years ago

@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.

ugurdogrusoz commented 8 years ago

@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.

devkhan commented 8 years ago

@ugurdogrusoz Thanks. :+1:

khanspers commented 5 years ago

mostly done, closing