diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02a4bab5a92ad8b583b68039ca5323b33bc007fd..dc25365bd5359ab440829cdf58041b39655c9ca9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,8 +48,10 @@ cache: - .m2/repository/ build: - image: maven:3.6-adoptopenjdk-14 + image: eclipse-temurin:17-jdk-alpine stage: build + before_script: + - apk update && apk add maven script: - mvn $MAVEN_OPTS compile - TRUEVERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) @@ -81,8 +83,10 @@ build: - stable test: - image: maven:3.6-adoptopenjdk-14 + image: eclipse-temurin:17-jdk-alpine stage: test + before_script: + - apk update && apk add maven script: - find . -name "*.class" -exec touch {} \+ - mvn $MAVEN_OPTS clean test @@ -93,8 +97,10 @@ test: package: - image: maven:3.6-adoptopenjdk-14 + image: eclipse-temurin:17-jdk-alpine stage: package + before_script: + - apk update && apk add maven script: - mvn $MAVEN_OPTS clean install -DskipTests=true - cd met4j-toolbox @@ -128,17 +134,20 @@ deployJar: - stable deploySnapshot: - image: maven:3.6-adoptopenjdk-14 + image: eclipse-temurin:17-jdk-alpine stage: deploy + before_script: + - apk update && apk add maven script: - mvn $MAVEN_CLI_OPTS deploy -Dmaven.test.skip=true only: - develop deployCentral: - image: maven:3.6-adoptopenjdk-14 + image: eclipse-temurin:17-jdk-alpine stage: deploy before_script: + - apk update && apk add maven - 'which ssh-agent || ( apt-get update -qy && apt-get install openssh-client -qqy )' - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77f7c26765ceab1cc8dd676a3ff09fc71fd6bec8..aa863107b456c4cd5bd6a8414ca7b52f3ed0239e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Next Release + + + + ## 1.5.0 diff --git a/Dockerfile b/Dockerfile index 3d409a37e69226b1e2286c1d6ca0f4354ca058f3..3c8fd528354b26618c6a1b52e6b02da44f11f204 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM adoptopenjdk:11-jdk-hotspot +FROM eclipse-temurin:17-jdk-alpine + +RUN apk update && apk add maven RUN mkdir -p /opt/bin diff --git a/coverage/pom.xml b/coverage/pom.xml index 1e6d76466cc3f298811809e5fac679277716591f..2a539ca26414262d46be2f89b3c6a701326d2efb 100644 --- a/coverage/pom.xml +++ b/coverage/pom.xml @@ -54,6 +54,9 @@ <properties> <maven.deploy.skip>true</maven.deploy.skip> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> @@ -93,7 +96,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.5</version> + <version>0.8.11</version> <executions> <execution> <id>report-aggregate</id> diff --git a/met4j-chemUtils/pom.xml b/met4j-chemUtils/pom.xml index 404dac28b29f1390367e859f6abe2f663b20febb..842b6fdf42820fe3cb1b0ef39b2eab69792ed27d 100644 --- a/met4j-chemUtils/pom.xml +++ b/met4j-chemUtils/pom.xml @@ -10,8 +10,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <artifactId>met4j-chemUtils</artifactId> @@ -24,7 +24,7 @@ <dependency> <groupId>org.openscience.cdk</groupId> <artifactId>cdk-bundle</artifactId> - <version>2.6</version> + <version>2.9</version> </dependency> <dependency> <groupId>fr.inrae.toulouse.metexplore</groupId> @@ -35,7 +35,7 @@ <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> - <version>3.0.0</version> + <version>5.7.0</version> <scope>test</scope> </dependency> </dependencies> @@ -46,7 +46,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-core/pom.xml b/met4j-core/pom.xml index 898ae91a34304b4d14a097b7346db4baaed86334..6edc9ba4e9082d42c91df7985a7c2b2e39d14988 100644 --- a/met4j-core/pom.xml +++ b/met4j-core/pom.xml @@ -22,8 +22,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> @@ -31,7 +31,7 @@ <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> - <version>3.0</version> + <version>3.13.0</version> </dependency> </dependencies> @@ -40,7 +40,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java index f9ca3e445769f87c7f5bd5e7c0a887b8ee942f97..9c4cd7b34ad163cdb936a376482ca206a5b5fd83 100755 --- a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java +++ b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioParticipant.java @@ -37,7 +37,8 @@ package fr.inrae.toulouse.metexplore.met4j_core.biodata; import lombok.Getter; -import javax.annotation.Nonnull; +import lombok.NonNull; + import java.util.Objects; /** @@ -61,7 +62,7 @@ public abstract class BioParticipant extends BioEntity { * @param quantity number of units of physicalEntity */ - public BioParticipant(String id, @Nonnull BioPhysicalEntity physicalEntity, Double quantity) { + public BioParticipant(String id, @NonNull BioPhysicalEntity physicalEntity, Double quantity) { super(id); this.physicalEntity=physicalEntity; if(Double.isNaN(quantity) || Double.isInfinite(quantity) || quantity <= 0) diff --git a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java index 81e5236a48106efdac0d698b48e03e0c12d0c2ee..5fe8d9d078ac0255b555c080075f9ed78e0e1260 100644 --- a/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java +++ b/met4j-core/src/main/java/fr/inrae/toulouse/metexplore/met4j_core/biodata/BioReactant.java @@ -36,8 +36,8 @@ package fr.inrae.toulouse.metexplore.met4j_core.biodata; import lombok.Getter; +import lombok.NonNull; -import javax.annotation.Nonnull; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; @@ -61,7 +61,7 @@ public class BioReactant extends BioParticipant { * @param stoichiometry stoichiometric coefficient * @param location a {@link fr.inrae.toulouse.metexplore.met4j_core.biodata.BioCompartment} */ - protected BioReactant(@Nonnull BioMetabolite metabolite, Double stoichiometry, @Nonnull BioCompartment location) { + protected BioReactant(@NonNull BioMetabolite metabolite, Double stoichiometry, @NonNull BioCompartment location) { super(metabolite.getId()+"__"+stoichiometry+"__"+location.getId(), metabolite, stoichiometry); this.location = location; } diff --git a/met4j-graph/pom.xml b/met4j-graph/pom.xml index 15bca6259e9eee74db5065a708fa1fd16aa9ebd8..790c6a52e6727cac5f3206932c3fd59aa9664170 100644 --- a/met4j-graph/pom.xml +++ b/met4j-graph/pom.xml @@ -16,21 +16,21 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-core</artifactId> - <version>1.5.0</version> + <version>1.5.2</version> <!--memo: once 1.5.2 is available, remove quick-fix in graph.connect.ShortestPath$getShortestPathsUnionList--> </dependency> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-io</artifactId> - <version>1.5.0</version> + <version>1.5.2</version> </dependency> <dependency> <groupId>fr.inrae.toulouse.metexplore</groupId> @@ -59,7 +59,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java index 76381b6b9632ffe245725614f2db361057d26918..17a32a8b2639ffb1d07e0969ed968bc79f2f7d73 100644 --- a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java +++ b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/connect/ShortestPath.java @@ -310,13 +310,8 @@ public class ShortestPath<V extends BioEntity,E extends Edge<V>, G extends BioGr for(V start : startNodes){ for(V end : targetNodes){ if(start!=end){ - try{ - GraphPath<V, E> p = paths.getPath(start,end); - if(p!=null) outputPaths.add(new BioPath<>(p)); - }catch(NullPointerException e){ - //Handle JGraphT error which will be fixed in the next release (1.5.2). - //See https://github.com/jgrapht/jgrapht/issues/1053 - } + GraphPath<V, E> p = paths.getPath(start,end); + if(p!=null) outputPaths.add(new BioPath<>(p)); } } } diff --git a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java index c3a7b08729205727aa84e18a8c755f5b14767fb2..73a4976abf9f007f708bf42c7e12653fbce95235 100644 --- a/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java +++ b/met4j-graph/src/main/java/fr/inrae/toulouse/metexplore/met4j_graph/computation/transform/EdgeMerger.java @@ -35,15 +35,13 @@ */ package fr.inrae.toulouse.metexplore.met4j_graph.computation.transform; -import java.util.*; -import java.util.stream.Collectors; - -import com.google.common.primitives.Doubles; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity; import fr.inrae.toulouse.metexplore.met4j_graph.core.BioGraph; import fr.inrae.toulouse.metexplore.met4j_graph.core.Edge; import fr.inrae.toulouse.metexplore.met4j_graph.core.parallel.MergedGraph; import fr.inrae.toulouse.metexplore.met4j_graph.core.parallel.MetaEdge; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity; + +import java.util.*; /** * Class used to merges parallel edges. @@ -222,7 +220,7 @@ public class EdgeMerger { return new Comparator<E>() { @Override public int compare(E e1, E e2) { - return Doubles.compare( + return Double.compare( g.getEdgeWeight(e2), g.getEdgeWeight(e1) ); @@ -233,7 +231,7 @@ public class EdgeMerger { return new Comparator<E>() { @Override public int compare(E e1, E e2) { - return Doubles.compare( + return Double.compare( g.getEdgeWeight(e1), g.getEdgeWeight(e2) ); diff --git a/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java b/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java index c8756056fa03bd0de3921d1604197e38ec89059a..6cc16894987cb0c0460ba1c92ccf63674ccf3fcf 100644 --- a/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java +++ b/met4j-graph/src/test/java/fr/inrae/toulouse/metexplore/met4j_graph/TestBioPathUtils.java @@ -35,35 +35,23 @@ */ package fr.inrae.toulouse.metexplore.met4j_graph; -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction; import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.ShortestPath; +import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.weighting.UnweightedPolicy; import fr.inrae.toulouse.metexplore.met4j_graph.core.BioPath; import fr.inrae.toulouse.metexplore.met4j_graph.core.BioPathUtils; import fr.inrae.toulouse.metexplore.met4j_graph.core.compound.CompoundGraph; import fr.inrae.toulouse.metexplore.met4j_graph.core.compound.ReactionEdge; -import fr.inrae.toulouse.metexplore.met4j_graph.io.ExportGraph; import fr.inrae.toulouse.metexplore.met4j_mathUtils.matrix.BioMatrix; -import fr.inrae.toulouse.metexplore.met4j_mathUtils.matrix.EjmlMatrix; -import fr.inrae.toulouse.metexplore.met4j_graph.computation.connect.weighting.UnweightedPolicy; - -import org.apache.bcel.generic.BREAKPOINT; -import org.junit.BeforeClass; import org.junit.Before; -import org.junit.Test; import org.junit.Rule; +import org.junit.Test; import org.junit.rules.ExpectedException; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite; +import java.util.*; + +import static org.junit.Assert.assertEquals; /** * test class for {@link BioPathUtils} methods diff --git a/met4j-io/pom.xml b/met4j-io/pom.xml index 18d2878abbb6c147fb3d5b70e46c5aaf0711c185..36c255838f1f0be517944e0e049caaacf0dc0671 100644 --- a/met4j-io/pom.xml +++ b/met4j-io/pom.xml @@ -17,8 +17,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> @@ -35,13 +35,13 @@ <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> - <version>2.8.0</version> + <version>2.12.2</version> </dependency> <!-- https://mvnrepository.com/artifact/xom/xom --> <dependency> <groupId>xom</groupId> <artifactId>xom</artifactId> - <version>1.2.5</version> + <version>1.3.9</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> @@ -51,12 +51,12 @@ <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> - <version>31.0.1-jre</version> + <version>32.1.3-jre</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> - <version>3.0.0</version> + <version>5.7.0</version> </dependency> </dependencies> <build> @@ -64,7 +64,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java index 92f0a6ee047e2186390cf2619b2aa8df87463b47..74a3dd6095fe043932803ec27a5581e751cdd2ba 100644 --- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java +++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/AnnotationParser.java @@ -36,10 +36,11 @@ package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.collection.BioCollection; import fr.inrae.toulouse.metexplore.met4j_io.jsbml.dataTags.AdditionalDataTag; import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.tags.ReaderSBML1Compatible; import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.tags.ReaderSBML2Compatible; @@ -49,13 +50,10 @@ import org.sbml.jsbml.CVTerm; import org.sbml.jsbml.Model; import org.sbml.jsbml.UniqueNamedSBase; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.collection.BioCollection; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioEntity; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import static fr.inrae.toulouse.metexplore.met4j_core.utils.StringUtils.*; +import static fr.inrae.toulouse.metexplore.met4j_core.utils.StringUtils.isVoid; /** * This class is used to parse the MIRIAM annotation of every SBML element. @@ -88,11 +86,11 @@ public class AnnotationParser implements PackageParser, AdditionalDataTag, Reade /** * The default annotation pattern: * <ul> - * <li>http://identifiers.org/([^/]+)/(.*) + * <li>http://identifiers.org/([^/]+)[/:](.*) * </ul> * The first parenthesis group is */ - public static final String defaultAnnotationPattern = "https?://identifiers.org/([^/]+)/(.*)"; + public static final String defaultAnnotationPattern = "https?://identifiers.org/([^/]+)[/:](.*)"; /** * Constructor diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java index a49fe3db5fb94058c6ad67098c69c54d7d0775b0..44d998c38aad1e7d5c6649413fd0501a21250df9 100644 --- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java +++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/plugin/FBCParser.java @@ -91,6 +91,11 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp */ public FBCModelPlugin fbcModel; + /** + * Indicates if the genes are parsed or not + */ + public Boolean parseGenes = true; + /** {@inheritDoc} */ @Override public String getAssociatedPackageName() { @@ -103,6 +108,17 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp return model.isPackageURIEnabled(PackageNamespace); } + + public FBCParser(Boolean parseGenes) { + + this.parseGenes = parseGenes; + } + + public FBCParser() { + + this.parseGenes = true; + } + /** * {@inheritDoc} * @@ -129,7 +145,10 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp this.setStrictFromFbcModel(); this.parseParameters(); - this.parseListOfGeneProducts(); + + if(parseGenes) { + this.parseListOfGeneProducts(); + } try { this.parseFluxReactions(); } catch (GeneSetException | Met4jSbmlReaderException e) { @@ -239,7 +258,7 @@ public class FBCParser implements PackageParser, PrimaryDataTag, ReaderSBML3Comp GeneAssociation geneAssociation = new GeneAssociation(); // System.err.println(rxn.getId()); - if (rxnPlugin.isSetGeneProductAssociation()) { + if (parseGenes && rxnPlugin.isSetGeneProductAssociation()) { geneAssociation = this.computeGeneAssocations(rxnPlugin.getGeneProductAssociation().getAssociation()); } // System.err.println("out of recursion"); diff --git a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java index 06fe91e25ac75a58e08cf02eb5cc656511ff8b97..71d4bd8dbeeed10115feeabbddd1d15bf34f0f56 100755 --- a/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java +++ b/met4j-io/src/main/java/fr/inrae/toulouse/metexplore/met4j_io/utils/StringUtils.java @@ -245,7 +245,7 @@ public class StringUtils { // // codes.add(new Integer(str)); - int[] codesInt = new int []{new Integer(str)}; + int[] codesInt = new int []{Integer.valueOf(str)}; String specialCharacter = new String(codesInt,0, codesInt.length); diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java index 0ea64e6e695c48745d1bcb15232fdc7cee9f087e..a30c7a7969d5a81fe12d922373447be86d9a6cdf 100644 --- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java +++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/annotations/GenericAttributesTest.java @@ -38,16 +38,13 @@ package fr.inrae.toulouse.metexplore.met4j_io.annotations; import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioMetabolite; +import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioProtein; import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioReaction; import fr.inrae.toulouse.metexplore.met4j_io.jsbml.attributes.Notes; -import fr.inrae.toulouse.metexplore.met4j_io.jsbml.attributes.SbmlAnnotation; -import org.apache.xalan.trace.GenerateEvent; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioProtein; - import java.util.HashSet; import java.util.Set; diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java index 5681dc1c849bdb24b9fadc15fbf0e40b4c8a1c72..c9142d8b88be3624befd09a5191fe04b781a14ae 100644 --- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java +++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/JsbmlReaderTest.java @@ -37,11 +37,15 @@ package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader; import fr.inrae.toulouse.metexplore.met4j_core.biodata.BioNetwork; +import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.FBCParser; +import fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader.plugin.PackageParser; import org.junit.Test; import org.sbml.jsbml.SBMLDocument; import javax.xml.stream.XMLStreamException; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; import static org.junit.Assert.*; import static org.mockito.Mockito.doReturn; @@ -65,10 +69,33 @@ public class JsbmlReaderTest { assertEquals(3, network.getReactionsView().size()); + assertEquals(2, network.getGenesView().size()); + // Other tests are done on JsbmlToBioNetwork } + @Test + public void readWithoutGenes() throws IOException, XMLStreamException, Met4jSbmlReaderException { + + JsbmlReader reader = spy(new JsbmlReader("test")); + + SbmlDocMock docMockGenerator = new SbmlDocMock(); + SBMLDocument doc = docMockGenerator.doc; + + doReturn(doc).when(reader).sbmlRead(); + + BioNetwork network = reader.read(new ArrayList<PackageParser>(Arrays.asList(new FBCParser(false)))); + + assertNotNull(network); + + assertEquals(3, network.getReactionsView().size()); + + assertEquals(0, network.getGenesView().size()); + + + } + @Test public void readWithoutNotes() throws IOException, XMLStreamException, Met4jSbmlReaderException { JsbmlReader reader = spy(new JsbmlReader("test")); diff --git a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java index 9054ca48250285baa15fec6370b430cd545d24b0..f60f41a35be1e2be275271c654068603c7831023 100644 --- a/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java +++ b/met4j-io/src/test/java/fr/inrae/toulouse/metexplore/met4j_io/jsbml/reader/SbmlDocMock.java @@ -35,9 +35,13 @@ */ package fr.inrae.toulouse.metexplore.met4j_io.jsbml.reader; +import fr.inrae.toulouse.metexplore.met4j_io.utils.StringUtils; import org.sbml.jsbml.*; +import org.sbml.jsbml.ext.fbc.*; import javax.xml.stream.XMLStreamException; +import java.util.ArrayList; +import java.util.List; public class SbmlDocMock { @@ -51,7 +55,7 @@ public class SbmlDocMock { public SbmlDocMock() { - doc = new SBMLDocument(3, 1); + doc = new SBMLDocument(3, 2); model = doc.createModel(); @@ -83,6 +87,21 @@ public class SbmlDocMock { m1.setInitialAmount(2.0); m2.setInitialAmount(3.0); + // Create genes + FBCModelPlugin fbcModel = (FBCModelPlugin) model.getPlugin("http://www.sbml.org/sbml/level3/version1/fbc/version2"); + GeneProduct gene1 = fbcModel.createGeneProduct(); + gene1.setId("g1"); + gene1.setName("g1"); + gene1.setLabel("g1"); + + fbcModel.addGeneProduct(gene1); + + GeneProduct gene2 = fbcModel.createGeneProduct(); + gene2.setId("g2"); + gene2.setName("g2"); + gene2.setLabel("g2"); + + fbcModel.addGeneProduct(gene2); r1 = model.createReaction("r1"); r1.setName("name1"); @@ -90,8 +109,22 @@ public class SbmlDocMock { r1.setSBOTerm("SBO:0000167"); + GeneProductRef geneRef1 = new GeneProductRef(); + geneRef1.setGeneProduct(StringUtils.convertToSID("g1")); + + FBCReactionPlugin rxnPlugin = (FBCReactionPlugin) r1.getPlugin("fbc"); + GeneProductAssociation GPA = rxnPlugin.createGeneProductAssociation(); + GPA.setAssociation(geneRef1); + r2 = model.createReaction("r2"); + GeneProductRef geneRef2 = new GeneProductRef(); + geneRef2.setGeneProduct(StringUtils.convertToSID("g2")); + + FBCReactionPlugin rxn2Plugin = (FBCReactionPlugin) r2.getPlugin("fbc"); + GeneProductAssociation GPA2 = rxnPlugin.createGeneProductAssociation(); + GPA.setAssociation(geneRef2); + SpeciesReference m1Ref = new SpeciesReference(m1); m1Ref.setStoichiometry(2.0); diff --git a/met4j-mapping/pom.xml b/met4j-mapping/pom.xml index ed55e7a08b7086e1a5da3861e460316d49eeb086..937aef96dd70633eb3f079e7674bb720caff3a37 100644 --- a/met4j-mapping/pom.xml +++ b/met4j-mapping/pom.xml @@ -10,8 +10,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <artifactId>met4j-mapping</artifactId> @@ -24,12 +24,12 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.12</version> + <version>4.13.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> - <version>1.8</version> + <version>1.11.0</version> <scope>compile</scope> </dependency> </dependencies> @@ -39,7 +39,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java b/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java index 24ff3608d27890046fc0aaac282585dda9314381..2a182a773fd075ad94ebd4c96c24df751adb47b7 100644 --- a/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java +++ b/met4j-mapping/src/main/java/fr/inrae/toulouse/metexplore/met4j_mapping/enrichment/PathwayEnrichment.java @@ -246,7 +246,7 @@ public class PathwayEnrichment { for(BioPathway p : pvalues.keySet()){ double pval = pvalues.get(p); double adjPval = pval*pvalues.size(); - adjPvalues.put(p, new Double(adjPval)); + adjPvalues.put(p, Double.valueOf(adjPval)); } return adjPvalues; } @@ -265,7 +265,7 @@ public class PathwayEnrichment { BioPathway p = orderedPaths.get(k); double pval = pvalues.get(p); double adjPval = pval*pvalues.size()/(k+1); - adjPvalues.put(p, new Double(adjPval)); + adjPvalues.put(p, Double.valueOf(adjPval)); } return adjPvalues; } @@ -284,7 +284,7 @@ public class PathwayEnrichment { BioPathway p = orderedPaths.get(k); double pval = pvalues.get(p); double adjPval = pval*(pvalues.size()+1-(k+1)); - adjPvalues.put(p, new Double(adjPval)); + adjPvalues.put(p, Double.valueOf(adjPval)); } return adjPvalues; } diff --git a/met4j-mathUtils/pom.xml b/met4j-mathUtils/pom.xml index a89d93b74486436e6ade399bea00165c8bd70fc6..e5e68a0542aefd654049f22e89cc0030df6b5dcf 100644 --- a/met4j-mathUtils/pom.xml +++ b/met4j-mathUtils/pom.xml @@ -17,8 +17,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> @@ -39,7 +39,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java b/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java index aa9f9635caeeb15a85680e21069b4aef85f6c151..ba2d9653ceecf98a748ce164f82446765abfd4a2 100644 --- a/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java +++ b/met4j-mathUtils/src/main/java/fr/inrae/toulouse/metexplore/met4j_mathUtils/similarity/SimilarityComputor.java @@ -67,9 +67,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = c/(a+b-c); return dist; } @@ -89,9 +89,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = (2*c)/(a+b); return dist; } @@ -111,9 +111,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = c/(Math.sqrt(a*b)); return dist; } @@ -133,9 +133,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = a+b-(2*c); return dist; } @@ -154,9 +154,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = Math.sqrt(a+b-(2*c)); return dist; } @@ -177,9 +177,9 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet intersect = (BitSet) fingerprint1.clone(); intersect.and(fingerprint2); - double a = new Integer(fingerprint1.cardinality()).doubleValue(); - double b = new Integer(fingerprint2.cardinality()).doubleValue(); - double c = new Integer(intersect.cardinality()).doubleValue(); + double a = Integer.valueOf(fingerprint1.cardinality()).doubleValue(); + double b = Integer.valueOf(fingerprint2.cardinality()).doubleValue(); + double c = Integer.valueOf(intersect.cardinality()).doubleValue(); double dist = (a+b-(2*c))/(a+b-c); return dist; } @@ -198,7 +198,7 @@ public class SimilarityComputor { if(fingerprint1.size()!=fingerprint2.size()) throw new IllegalArgumentException("bitSets must have the same size"); BitSet xor = (BitSet) fingerprint1.clone(); xor.xor(fingerprint2); - return new Integer(xor.cardinality()).doubleValue(); + return Integer.valueOf(xor.cardinality()).doubleValue(); } diff --git a/met4j-reconstruction/pom.xml b/met4j-reconstruction/pom.xml index d1e7675faab53276a0226ea7e0d2e252a9bac77b..4fc1807001d32338f67b6499902053271c1fa5ab 100644 --- a/met4j-reconstruction/pom.xml +++ b/met4j-reconstruction/pom.xml @@ -52,8 +52,8 @@ <url>http://maven.apache.org</url> <properties> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> @@ -66,7 +66,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.12</version> + <version>4.13.2</version> </dependency> </dependencies> @@ -75,7 +75,7 @@ <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j-toolbox/pom.xml b/met4j-toolbox/pom.xml index 04f64ec42501a60492228dbe2aa7365fc613dbd6..17f3ac7eb60c68ded9d4696925e81f4d3ff656e0 100644 --- a/met4j-toolbox/pom.xml +++ b/met4j-toolbox/pom.xml @@ -14,8 +14,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> @@ -68,7 +68,12 @@ <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> - <version>6.0.17.Final</version> + <version>8.0.1.Final</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <version>4.0.0-alpha-8</version> </dependency> </dependencies> @@ -121,14 +126,14 @@ <dependency> <groupId>com.github.edwgiz</groupId> <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId> - <version>2.6.1</version> + <version>2.6.2</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.8.7</version> + <version>0.8.11</version> <executions> <!-- to avoid bugs in some situations --> <execution> diff --git a/met4j.singularity b/met4j.singularity index 5fc314cb88eb96c2f2ec32c3ca8aca65d7f8892b..f2d740b47b5cdf9c0d50700673c67aa5b27514ef 100644 --- a/met4j.singularity +++ b/met4j.singularity @@ -1,5 +1,5 @@ Bootstrap: docker -From: adoptopenjdk:11-jdk-hotspot +From: eclipse-temurin:17-jdk-alpine %runscript if [ $# -lt 1 ] @@ -24,7 +24,7 @@ mvn package Maintainer Ludovic.Cottret@inrae.fr %post - + apk update && apk add maven cd /usr/bin && ln -s /opt/bin/met4j.sh %environment diff --git a/pom.xml b/pom.xml index b4f87a2b985f2d6f1b17f28db9ce6ff84d0a4998..59f27808b63a8710fc0ca352d93579da3967aa98 100644 --- a/pom.xml +++ b/pom.xml @@ -64,8 +64,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>11</maven.compiler.source> - <maven.compiler.target>11</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> <project.scm.id>forgemia</project.scm.id> </properties> @@ -87,8 +87,8 @@ <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> - <source>11</source> - <target>11</target> + <source>17</source> + <target>17</target> </configuration> </plugin> <plugin> @@ -105,7 +105,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.19.1</version> + <version>3.0.0-M5</version> </plugin> </plugins> </build> @@ -184,13 +184,13 @@ <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> - <version>3.0.0</version> + <version>3.4.0</version> <type>maven-plugin</type> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> - <version>1.18.22</version> + <version>1.18.30</version> <scope>provided</scope> </dependency> <dependency>