Code Monkey home page Code Monkey logo

sbml-mod-ws's Introduction

SBMLmod web service

Dependencies

  • Python > 2.6 (no Python 3 support)
  • zc.buildout pip install zc.buildout
  • Setuptools pip install setuptools
  • libSBML pip install python-libsbml

Setup/install

From within the sbml_mod_ws directory (where the bootstrap.py file is located) run:

python bootstrap.py

./bin/buildout

./bin/gencode

Configure service (if needed) by editing parts/etc/pyserver.cfg. Note that the port in parts/etc/pyserver.cfg must correspond to the one defined in the WSDL file src/sbmlmod/SBMLmod.wsdl.

To run tests, type ./bin/test.

Running web service

The web service can be started by ./bin/serverd start or ./bin/serverd debug. For more serverd parameters, run ./bin/serverd.

If the service should stop unexpectedly (e.g. by shutting down the computer), you need to clean up the server by running ./bin/serverd stop before starting it again (with ./bin/serverd start).

Access service

The webservice provides an WSDL file (src/sbmlmod/SBMLmod.wsdl) that must be made available via some webserver (e.g. Apache or nginx). The file contains a description of the service in an XML format. The service itself can be accessed via SOAP. An example client with further information is provided here src/testClient.

sbml-mod-ws's People

Contributors

schsascha avatar punpal avatar

Stargazers

Wolfgang Müller avatar

Watchers

James Cloos avatar  avatar Prof. Ines Heiland avatar  avatar Mathias Bockwoldt avatar Suraj Sharma avatar  avatar  avatar

Forkers

europj

sbml-mod-ws's Issues

Test fails with new libSBML version

The test testWrongFileAsInputToValidateSBMLModelTriggersNotValidModelResponse fails with a newer libSBML version.

In the test, the number of errors is tested and is expected to be 2. With libSBML version 5.11.4, these errors were:

'Main XML content is empty.'
'An SBML document must contain a <model> element. The <model> element is optional in L3V2 and beyond. [...]'

However, with libSBML version 5.13.0, there is only one error, that says:

'XML content is not well-formed.'

To get libSBML version: pip show python-libsbml

What to do? Delete the test? Change the test?

One test fails

FAIL: testWrongFileAsInputToValidateSBMLModelTriggersNotValidModelResponse (testsbmlmod.TestSBMLmod.TestSBMLmod)

Traceback (most recent call last):
File "..../sbml-mod-ws/src/testsbmlmod/TestSBMLmod.py", line 57, in testWrongFileAsInputToValidateSBMLModelTriggersNotValidModelResponse
self.assertEquals(3, len(response.get_element_ErrorMessages()))
AssertionError: 3 != 2

Is this a problem with the code or the test?

Processing Failure

I get a processing failure with one of my data files for unknown reasons. Can send the file offline.

In batch mode, rct. params must be set before init. spec. conc.

In ManipulateKineticParameters.py lines 372+ executeReplaceInitialConcentrationsOfSpecies does not properly handle batchmode if only one model file is given. Only the first data column is considered and hence, only one model file is generated. If several model files are given (from an earlier call of setting reaction parameters), it runs fine.

Should client code be removed or refactored?

The client code in src/pyclient seems to be private code with lots of hard coded file paths. To become useful it should be refactored to use files in src/testsbmlmod/resources. Good examples of clients would be a good thing. Alternatively the code should be deleted.

no route to host error

Trying to run the pyClientSample script in the testClient folder does not finish.
Results in
urllib2.URLError: <urlopen error [Errno 113] No route to host>
error.

  1. Can you replicate the error?
  2. Suggestions?

The example python script in testclient needs to be updated

The example python script in testclient needs to be updated and further help and documentation is needed. If I understand it correctly it can not be run as it is out of the box. That should be the case. Define default values (if not done already)!

./bin/serverd does not know --help

In the readme, it says to use ./bin/serverd --help to get help, but the only thing that happens is a comment saying Unknown command.
I'd just remove the hint to --help...

Provide a bash based pipeline example in testclient

Provide the whole pipeline including the generation of cumulated concentration and flux-tables and visualisation as bash-script (I could do that) we could also stick to python scripts (Mathias or Sascha)?

Unconditional warning about species mapping

Around line 86 in src/sbmlmod/ModelEditor.py, there is a warning issued, that x species were not found. This warning is issued unconditioned and is also added, if all species were found.
Also, there is a space missing between the number and the warning.

License

We need to decide for some license (GPL (version?), MIT, etc.)

wsdl file modification

  • While compiling the wsdl assocaited documentation, I found two redundant entries in the wsdl file, which I deleted.
  • I changed all esysbio addresses to uit sbmlmod addresses.
  • I deleted two schema entries in the preamble, as I don't know where these are at the uit servers.
  • I created a techn. Documentation, sensitive to these changes.

All of this is realised in the branch wsdl_modification.
Everything should still work fine, but I want to make sure: Please check that the application works fine. If so, we can merge into the master branch, as esysbio links should not be present anymore.
I will run checks as well.

Do we want non-case-sensitive mapping?

Currently, the frontend offers the checkbox to use or not use case-sensitive mapping. Neither the wsdl nor the backend code (after skimming through it) offers this choice. Do we want the choice or not. I guess, not.
If not, the frontend needs to be changed (→ open an issue there, if the feature is not wanted).

Technical documentation missing

We should at least provide a short overview which function do what and how different parameters are handled. Otherwise nobody outside our team will have the chance to modify anything and it would thus actually make no sense to make the repository public.

Improve Readme

It would be good to give some basic info on how to run SBMLmod with this module only without the web frontend (sbml_mod_web). This information could easily be added to the existing readme, I think.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.