- authors: clement.frainay@inrae.fr, ludovic.cottret@inrae.fr
- creation date:
2016-12-06 - main usage: open-source Java library dedicated to the structural analysis of metabolic networks
Met4J is an open-source Java library dedicated to the structural analysis of metabolic networks. Met4J also offers many features to edit, convert and parse SBML files. It also came with a toolbox gathering CLI for several analyses relevant to metabolism-related research.
Met4j is composed by three main modules:
- met4j-core: it's the key module which contains all the core classes for handling metabolic networks
- met4j-io: for importing/exporting metabolic networks in several formats (SBML, KEGG, TSV)
- met4j-graph: for performing graph-based topological analysis of metabolic networks.
The package met4j-toolbox contains high-level apps that can be run in command line by using either jar file or Singularity or Docker containers.
The met4j-toolbox apps are also available without any installation on a dedicated Galaxy instance.
Met4J is developed and maintained by the MetExplore platform.
The core module met4j-core provides robust data structures for handling metabolic networks.
The met4j-io module supports reading and writing metabolic networks in various formats, ensuring compatibility with community standards.
- SBML Support: comprehensive support for SBML (Structure-based Model Language), including packages like FBC (Flux Balance Constraints), Groups (for pathways), Miriam annotations, and Notes.
- Format Conversion: Capabilities to import/export from KEGG, TSV, and generic matrices.
The met4j-graph offers advanced graph representations and algorithms for structural analysis dedicated to metabolic graphs.
- Graph Representations: Converting metabolic networks into Compound Graphs, Reaction Graphs, and Bipartite Graphs.
- Topological Metrics: Algorithms to compute Load points, Choke points, Scope networks, and Precursor networks.
- Weighting Strategies: Edge weighting based on degree or chemical similarity.
- Export: Compatibility with Cytoscape via GML/XGMML export.
The met4j-chemUtils module handles chemical information associated with metabolites.
- Chemical Analysis: Parsing chemical formulas and computing molecular masses (
MassComputor). - Chemical Similarity: Computing similarity between metabolites using molecular fingerprints (
FingerprintBuilder,SimilarityComputor).
The met4j-mapping module facilitates the mapping of omics data onto metabolic networks and its statiscal analysis.
- Data Mapping: Features to map omics data or attributes to network entities (
AttributeMapper). - Enrichment: Statistical tools for pathway enrichment analysis (
PathwayEnrichment).
The met4j-toolbox module is collection of command-line applications making the library's features accessible without coding.
- converters: examples:
Sbml2Graph,Tab2Sbml,Kegg2Sbml. - Network Analysis: examples:
ChokePoint,LoadPoint,ScopeNetwork,MetaboRank. - Reconstruction: examples:
SbmlCheckBalanceandCreateMetaNetwork
To use Met4J as a library or to build it from source, you need:
- Java Development Kit (JDK): version 17 or higher
- Apache Maven: version 3.x or higher
Install all modules (check the Maven badge above for the latest version):
<dependency>
<groupId>fr.inrae.toulouse.metexplore</groupId>
<artifactId>met4j-toolbox</artifactId>
<version>2.4.3</version>
</dependency>
or a specific module (example : met4j-core ):
<dependency>
<groupId>fr.inrae.toulouse.metexplore</groupId>
<artifactId>met4j-core</artifactId>
<version>2.4.3</version>
</dependency>
git clone https://forge.inrae.fr/metexplore/met4j.git;
cd met4j;
mvn clean install
Read met4j-toolbox to see how to get jar, conda, Docker or Singularity packages containing all the met4-toolbox apps.
mvn clean test # unit tests
mvn clean verify -DskipUTs=true # integration tests
See CONTRIBUTING.md for more details.
User documentation for the library modules can be found in each module's own README.
Detailed code examples can be found at here.
Javadoc can be found at https://javadoc.io/doc/fr.inrae.toulouse.metexplore
Pull requests are welcome on the gitlab repo (https://forge.inrae.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.
See CONTRIBUTING.md for the development setup, how to run tests, the branching workflow and the CI/CD pipeline.
Issues or suggestions can be posted here.
All notable changes to this project will be documented in CHANGELOG.md. For the versions available, see the releases on this repository.
- Bug reports: GitHub issues or contact us by email: contact-metexplore@inrae.fr.
Met4J is distributed under the open license CeCILL-2.1 (compatible GNU-GPL).

