**Met4J is an open-source Java library dedicated to the structural analysis of metabolic networks. It also came with a toolbox gathering CLI for several analyses relevant to metabolism-related research.**
Met4j is composed by several modules:
Met4j is composed by three main modules:
-[met4j-core](met4j-core/README.md): it's the key module which contains all the core
classes for handling metabolic networks
-[met4j-io](met4j-io/README.md): for importing/exporting metabolic networks in several
formats (SBML, MetExploreXml, KEGG)
-[met4j-graph](met4j-graph/README.md): for performing graph-based topological analysis of metabolic networks.
The other modules contains utilities to serve the main modules listed here.
The full list of implemented metabolic network analysis can be found in the [met4j-toolbox](met4j-toolbox/README.md)
The package [met4j-toolbox](met4j-toolbox/README.md) contains high-level apps that can be run in command line by using either jar file or Singularity or Docker containers.
Pull requests are welcome **on the gitlab repo** ([https://forgemia.inra.fr/metexplore/met4j](https://forgemia.inra.fr/metexplore/met4j)). For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## Issues
Issues or suggestions can be posted [here](https://forgemia.inra.fr/metexplore/met4j/-/issues).
## License
Met4J is distributed under the open license [CeCILL-2.1](https://cecill.info/licences/Licence_CeCILL_V2.1-en.html)(compatible GNU-GPL).
By default, singularity does not see the directories that are not descendants of your home directory. To get the directories outside your home directory, you have to specify the SINGULARITY_BIND environment variable.
At least, to get the data in the default reference directory, you have to specify:
In bash:
```console
export SINGULARITY_BIND=/db
```
In csh or in tcsh
```console
setenv SINGULARITY_BIND /db
```
## From docker
First install [Docker](https://www.docker.com/).
Pull the latest met4j image:
```console
sudo docker pull metexplore/met4j:latest
```
If you want a specific version:
```console
sudo docker pull metexplore/met4j:x.y.z
```
If you want the develop version:
```console
sudo docker pull metexplore/met4j:develop
```
If you want to build by yourself the docker image:
```console
cd met4j-toolbox
mvn package
cd ../
sudo docker build -t metexplore/met4j:myversion .
```
To list all the apps:
```console
sudo docker run metexplore/met4j:latest met4j.sh
```
Don't forget to map volumes when you want to process local files.