Skip to content

NIB-SI/skm-pss-adapters

Repository files navigation

skm-pss-adapters

Export adapters from PSS neo4j db to other (flatfile) formats

PSS database

For testing, a snapshot of the PSS database is available at: https://github.com/NIB-SI/skm-neo4j

Connection to Neo4j settings

You can pass the connection settings (uri, username, password) to the CLI using command-line arguments:

  --neo4j-uri TEXT       Neo4j connection URI.
  --neo4j-user TEXT      Neo4j username.
  --neo4j-password TEXT  Neo4j password.

Alternatively, you can set these in an .env file in the current directory. The file should contain the following variables:

MY_NEO4J_URI=bolt://localhost:7687
MY_NEO4J_USER=neo4j
MY_NEO4J_PASSWORD=password

If you used the defaults in the skm-neo4j repo, you can use the .env.example file as provided.

mv .env.example .env

Usage

Create environment with dependencies:

mamba create -n pss-sbml conda-forge::neo4j-python-driver conda-forge::python-libsbml conda-forge::pyyaml conda-forge::click python-dotenv

If using the model fixes module, also install the following dependecies:

pip install pandas networkx rich matplotlib

SBML:

To view the CLI options:

python pss_adapter_cli.py to-sbml --help

Create the SBML file using the CLI:

python pss_adapter_cli.py to-sbml output.sbml --access public

Using the model-fixing functions:

python pss_adapter_cli.py to-sbml output-model-fixes.sbml --access public --model-fixes-identify  --model-fixes-apply

To add equations to the SBML file, you can use SBMLsqueezer from https://github.com/draeger-lab/SBMLsqueezer, e.g.

java -jar  /path..to..jar/SBMLsqueezer-2.2.jar --sbml-in-file output.sbml  --sbml-out-file output-squeezed

Known limitations and issues:

  • The SBML file does not contain equations for the reactions.
  • Continuous updates to the PSS database means that the model may not be connected or completely consistent with modelling.
  • Some molecules may be disconnected in the SBML file, for example if:
    • They occur in multiple compartments, but are not connected by a transport reaction.
    • A protein is formed by a translation reaction, but the protein is not "activated" by an "activation" reaction.
    • A complex is formed by a reaction, but the complex is not "activated" by an "activation" reaction.

TODOs

  • Make a TOML file for installing from pip and a requirements file with fixed dependency version for testing

About

Export adapters from PSS neo4j db to other formats

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published