diff --git a/CHANGELOG b/CHANGELOG index 235be914f32f8c49f61d102059ef84afde4ee26b..48079081d65628286e3da26601dbe6a6daa8f641 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +minerva (17.1.4) unstable; urgency=medium + * Bug fix: drug that has been removed from chembl caused issue (#2085) + + -- Piotr Gawron <piotr.gawron@uni.lu> Thu, 19 Sep 2024 15:00:00 +0200 + minerva (17.1.3) unstable; urgency=medium * Bug fix: not all links were provided on map (#2073) diff --git a/CellDesigner-plugin/pom.xml b/CellDesigner-plugin/pom.xml index f31118830e078743fbd95a7939b83b58d62aae67..60cbdd31871cfe9d0850b86cc09d86ce2eb0628e 100644 --- a/CellDesigner-plugin/pom.xml +++ b/CellDesigner-plugin/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>CellDesigner-plugin</artifactId> <!-- dependency from the MapViewer model --> @@ -50,19 +50,19 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>commons</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> diff --git a/annotation/pom.xml b/annotation/pom.xml index 84d4988a995eaacf2c4067520879c00d8986ada1..9158f7822cb8457add2f10bdbf22ed0e0ff1f48c 100644 --- a/annotation/pom.xml +++ b/annotation/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>annotation</artifactId> <name>Annotation module</name> @@ -19,7 +19,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer dao --> @@ -27,7 +27,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>persist</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer cell designer parser (we need access @@ -35,13 +35,13 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParserImpl.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParserImpl.java index ec4f4bea5c962ad3edb2b2088be93eb405a12199..0cf98c7500786c9fbbec4f2c1c879d3975ebf888 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParserImpl.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParserImpl.java @@ -1,24 +1,5 @@ package lcsb.mapviewer.annotation.services; -import java.io.IOException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.apache.commons.lang3.SerializationException; -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - import lcsb.mapviewer.annotation.cache.QueryCacheInterface; import lcsb.mapviewer.annotation.cache.SourceNotAvailable; import lcsb.mapviewer.annotation.data.Drug; @@ -34,15 +15,32 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; import lcsb.mapviewer.model.map.MiriamData; import lcsb.mapviewer.model.map.MiriamType; +import org.apache.commons.lang3.SerializationException; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * Class used for accessing and parsing data from chembl database using * <a href="https://www.ebi.ac.uk/chembl/ws">ChEMBL Data Web Services</a>. * Parser was initially developed by Janek, but after new API released by ebi it * was refactored by Piotr. - * + * * @author Piotr Gawron - * */ @Service @Transactional @@ -101,7 +99,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Default class logger. */ - private Logger logger = LogManager.getLogger(); + private final Logger logger = LogManager.getLogger(); /** * Service used for annotation of proteins using {@link MiriamType#UNIPROT @@ -114,7 +112,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser */ private HgncAnnotator hgncAnnotator; - private DoubleComparator doubleComparator = new DoubleComparator(); + private final DoubleComparator doubleComparator = new DoubleComparator(); /** * Constructor. @@ -129,11 +127,9 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Returns target for given chembl identifier. * - * @param md - * {@link MiriamType#CHEMBL_TARGET chembl identifier} of the target + * @param md {@link MiriamType#CHEMBL_TARGET chembl identifier} of the target * @return target - * @throws DrugSearchException - * thrown when there are problems with connection to ChEMBL database + * @throws DrugSearchException thrown when there are problems with connection to ChEMBL database */ @Override public Target getTargetFromId(final MiriamData md) throws DrugSearchException { @@ -229,12 +225,9 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser * Parse node of target component to get information about * {@link MiriamType#HGNC_SYMBOL} identifier. * - * @param targetComponent - * xml node to parse - * @return {@link MiriamData} with {@link MiriamType#HGNC_SYMBOL} identifier - * that could be extracted from input data - * @throws DrugSearchException - * thrown when there is a problem with annotations + * @param targetComponent xml node to parse + * @return {@link MiriamData} with {@link MiriamType#HGNC_SYMBOL} identifier that could be extracted from input data + * @throws DrugSearchException thrown when there is a problem with annotations */ @Override public MiriamData targetComponentToMiriamData(final Node targetComponent) throws DrugSearchException { @@ -259,11 +252,9 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Returns list of targets for given drug. * - * @param drugId - * identifier of a drug for which targets are looked + * @param drugId identifier of a drug for which targets are looked * @return list of targets for given drug - * @throws DrugSearchException - * thrown when there are problems with connection to ChEMBL database + * @throws DrugSearchException thrown when there are problems with connection to ChEMBL database */ @Override public List<Target> getTargetsByDrugId(final MiriamData drugId) throws DrugSearchException { @@ -309,8 +300,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Parse xml node with references. * - * @param referenceNode - * node with references + * @param referenceNode node with references * @return list of references obtained from xml node */ @Override @@ -329,7 +319,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser result.add(new MiriamData(MiriamType.PUBMED, id)); } } else { - logger.warn("Unknown node: " + node.getNodeName()); + logger.warn("Unknown node: {}", node.getNodeName()); } } } @@ -487,13 +477,11 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser * Parse xml node representing drug and returns drug with information obtained * from there and other places in chembl API. * - * @param node - * xml node representing drug, sample can be found <a href= - * "https://www.ebi.ac.uk/chembl/api/data/molecule?molecule_chembl_id=CHEMBL2068724"> - * here</a> (molecule subnode): + * @param node xml node representing drug, sample can be found <a href= + * "https://www.ebi.ac.uk/chembl/api/data/molecule?molecule_chembl_id=CHEMBL2068724"> + * here</a> (molecule subnode): * @return {@link Drug} obtained from xml node - * @throws DrugSearchException - * thrown when there is a problem with accessing chembl database + * @throws DrugSearchException thrown when there is a problem with accessing chembl database */ private Drug parseDrug(final Node node) throws DrugSearchException { Drug drug = new Drug(); @@ -523,11 +511,9 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Get targets for chembl children nodes. * - * @param drugId - * id of the parent drug + * @param drugId id of the parent drug * @return list of drug targets for children molecules in chembl ontology - * @throws DrugSearchException - * thrown when there is a problemw ith processing request + * @throws DrugSearchException thrown when there is a problemw ith processing request */ @Override public List<Target> getTargetsForChildElements(final MiriamData drugId) throws DrugSearchException { @@ -566,8 +552,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Parse xml node with synonyms. * - * @param synonymsNode - * xml node with synonyms + * @param synonymsNode xml node with synonyms * @return list of synonyms obtained from the input xml */ @Override @@ -591,11 +576,9 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Returns information about drug by chembl drug identifier. * - * @param drugId - * {@link MiriamType#CHEMBL_COMPOUND chembl drug identifier} + * @param drugId {@link MiriamType#CHEMBL_COMPOUND chembl drug identifier} * @return drug by chembl drug identifier - * @throws DrugSearchException - * thrown when there is a problem with accessing data about drug + * @throws DrugSearchException thrown when there is a problem with accessing data about drug */ @Override public Drug getDrugById(final MiriamData drugId) throws DrugSearchException { @@ -610,6 +593,20 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser if (response == null) { throw new DrugSearchException("Invalid source XML for drug: " + drugId); } + + Node pageMetaNode = XmlParser.getNode("page_meta", response); + if (pageMetaNode == null) { + throw new DrugSearchException("Invalid source XML for drug: " + drugId); + } + Node totalCount = XmlParser.getNode("total_count", pageMetaNode); + if (totalCount == null) { + throw new DrugSearchException("Invalid source XML for drug: " + drugId); + } + if (totalCount.getTextContent().trim().isEmpty()) { + return null; + } + + Node moleculesNode = XmlParser.getNode("molecules", response); if (moleculesNode == null) { throw new DrugSearchException("Invalid source XML for drug: " + drugId); @@ -651,12 +648,10 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser /** * Returns list of drugs found by target identified in the parameter. - * - * @param targetMiriam - * {@link MiriamType#CHEMBL_TARGET chembl target identifier} + * + * @param targetMiriam {@link MiriamType#CHEMBL_TARGET chembl target identifier} * @return list of drugs found by target identified in the parameter - * @throws DrugSearchException - * thrown when there is a problem with accessing chembl database + * @throws DrugSearchException thrown when there is a problem with accessing chembl database */ @Override public List<Drug> getDrugsByChemblTarget(final MiriamData targetMiriam) throws DrugSearchException { @@ -700,8 +695,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser } /** - * @param uniprotAnnotator - * the uniprotAnnotator to set + * @param uniprotAnnotator the uniprotAnnotator to set * @see #uniprotAnnotator */ public void setUniprotAnnotator(final UniprotAnnotator uniprotAnnotator) { @@ -717,8 +711,7 @@ public class ChEMBLParserImpl extends DrugAnnotationImpl implements ChEMBLParser } /** - * @param hgncAnnotator - * the hgncAnnotator to set + * @param hgncAnnotator the hgncAnnotator to set * @see #hgncAnnotator */ public void setHgncAnnotator(final HgncAnnotator hgncAnnotator) { diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotationImpl.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotationImpl.java index f3452aad3a962ff34b19a6ccd4063a17ed094a5c..0553b0cea4dd0e3a82400a787307a6766783b2a0 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotationImpl.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotationImpl.java @@ -46,7 +46,7 @@ public abstract class DrugAnnotationImpl extends CachableInterface implements Dr /** * Default class logger. */ - private final Logger logger = LogManager.getLogger(); + protected final Logger logger = LogManager.getLogger(); /** * Object that allows to serialize {@link Drug} elements into xml string and diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java index c7e48d958adcc440c97f926fcd5a58fd4ec207ac..c33bbd5ee4e058a2e65a242e2d138d83e8260598 100644 --- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java +++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java @@ -1,28 +1,5 @@ package lcsb.mapviewer.annotation.services; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.nullable; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import org.apache.commons.lang3.SerializationException; -import org.junit.After; -import org.junit.Test; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.util.ReflectionTestUtils; -import org.w3c.dom.Node; - import lcsb.mapviewer.annotation.AnnotationTestFunctions; import lcsb.mapviewer.annotation.cache.GeneralCacheInterface; import lcsb.mapviewer.annotation.cache.SourceNotAvailable; @@ -39,6 +16,28 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.model.map.MiriamData; import lcsb.mapviewer.model.map.MiriamRelationType; import lcsb.mapviewer.model.map.MiriamType; +import org.apache.commons.lang3.SerializationException; +import org.junit.After; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.util.ReflectionTestUtils; +import org.w3c.dom.Node; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.nullable; +import static org.mockito.Mockito.when; public class ChEMBLParserTest extends AnnotationTestFunctions { @@ -57,7 +56,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Autowired private TaxonomyBackend taxonomyBackend; - private WebPageDownloader webPageDownloader = new WebPageDownloader(); + private final WebPageDownloader webPageDownloader = new WebPageDownloader(); @After public void tearDown() throws Exception { @@ -157,7 +156,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void test7FindDrug() throws Exception { - String n = "asdwrgwedas"; + String n = "blah_blah_blah"; Drug test = chemblParser.findDrug(n); assertNull(test); } @@ -205,6 +204,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { for (final MiriamData md : test.getGenes()) { if (md.getResource().equals("MET")) { contains = true; + break; } } assertTrue(contains); @@ -313,6 +313,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { for (final MiriamData md : test.getGenes()) { if (md.getResource().equals("CYP17A1")) { contains = true; + break; } } assertTrue(contains); @@ -363,6 +364,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { for (final MiriamData md : test.getGenes()) { if (md.getResource().equals("KEAP1")) { contains = true; + break; } } assertTrue(contains); @@ -375,7 +377,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { for (final Target target : drug.getTargets()) { assertEquals(0, target.getReferences().size()); } - assertTrue(drug.getTargets().size() > 0); + assertFalse(drug.getTargets().isEmpty()); } @Test @@ -384,7 +386,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { for (final Target target : drug.getTargets()) { assertEquals(0, target.getReferences().size()); } - assertTrue(drug.getTargets().size() > 0); + assertFalse(drug.getTargets().isEmpty()); } @Test @@ -412,7 +414,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void testFindDrugByUniprotTarget() throws Exception { List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.UNIPROT, "O60391")); - assertTrue(drugs.size() > 0); + assertFalse(drugs.isEmpty()); } @Test(expected = DrugSearchException.class) @@ -424,7 +426,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { public void testFindDrugByHgncTarget() throws Exception { List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); assertNotNull(drugs); - assertTrue(drugs.size() > 0); + assertFalse(drugs.isEmpty()); } @Test @@ -432,14 +434,13 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { // this gene raised some errors at some point List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "PFKM")); assertNotNull(drugs); - assertTrue(drugs.size() >= 0); } @Test public void testFindDrugsByHgncTargets() throws Exception { List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); List<Drug> drugs2 = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3A")); - List<MiriamData> hgnc = new ArrayList<MiriamData>(); + List<MiriamData> hgnc = new ArrayList<>(); hgnc.add(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); hgnc.add(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3A")); List<Drug> drugs3 = chemblParser.getDrugListByTargets(hgnc); @@ -462,13 +463,13 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { organisms.add(TaxonomyBackend.HUMAN_TAXONOMY); List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B"), organisms); assertNotNull(drugs); - assertTrue(drugs.size() > 0); + assertFalse(drugs.isEmpty()); } @Test public void testFindDrugsByRepeatingHgncTargets() throws Exception { List<Drug> drugs = chemblParser.getDrugListByTarget(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); - List<MiriamData> hgnc = new ArrayList<MiriamData>(); + List<MiriamData> hgnc = new ArrayList<>(); hgnc.add(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); hgnc.add(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); hgnc.add(new MiriamData(MiriamType.HGNC_SYMBOL, "GRIN3B")); @@ -489,7 +490,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void testRefreshCacheQuery() throws Exception { - Object res = chemblParser.refreshCacheQuery("http://google.pl/"); + Object res = chemblParser.refreshCacheQuery("https://google.pl/"); assertNotNull(res); } @@ -503,7 +504,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { when(mockDownloader.getFromNetwork(anyString(), anyString(), nullable(String.class))) .thenThrow(new IOException()); ReflectionTestUtils.setField(chemblParser, "webPageDownloader", mockDownloader); - chemblParser.refreshCacheQuery("http://google.pl/"); + chemblParser.refreshCacheQuery("https://google.pl/"); } @Test(expected = DrugSearchException.class) @@ -628,9 +629,9 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void testParseReferences() throws Exception { Node node = super.getXmlDocumentFromFile("testFiles/chembl/references.xml"); + assertNotNull(node); Set<MiriamData> references = chemblParser.parseReferences(node.getFirstChild()); - // we might have more references (if we decide to parse wikipedia, isbn, - // etc) + // we might have more references (if we decide to parse wikipedia, isbn, etc.) assertTrue(references.size() >= 3); assertEquals(1, getWarnings().size()); } @@ -638,6 +639,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void testParseReferencesWithSpecInId() throws Exception { Node node = super.getXmlDocumentFromFile("testFiles/chembl/references_with_space.xml"); + assertNotNull(node); Set<MiriamData> references = Mockito.mock(ChEMBLParserImpl.class, Mockito.CALLS_REAL_METHODS).parseReferences(node.getFirstChild()); assertEquals(1, references.size()); assertFalse(references.iterator().next().getResource().contains(" ")); @@ -649,7 +651,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { } @Test(expected = DrugSearchException.class) - public void testGetDrugByDrugIdWhenCehmblCrash() throws Exception { + public void testGetDrugByDrugIdWhenChemblCrash() throws Exception { ReflectionTestUtils.setField(chemblParser, "cache", null); WebPageDownloader mockDownloader = Mockito.mock(WebPageDownloader.class); when(mockDownloader.getFromNetwork(anyString(), anyString(), nullable(String.class))).thenReturn("invalid xml"); @@ -670,7 +672,7 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { @Test public void testParseSynonymsNode() throws Exception { Node node = super.getNodeFromXmlString( - "<molecule_synonyms><synonym><synonyms>some synonym</synonyms></synonym><unknode/></molecule_synonyms>"); + "<molecule_synonyms><synonym><synonyms>some synonym</synonyms></synonym><unknown_node/></molecule_synonyms>"); List<String> synonyms = chemblParser.parseSynonymsNode(node); assertEquals(1, synonyms.size()); assertEquals(1, getWarnings().size()); @@ -731,4 +733,10 @@ public class ChEMBLParserTest extends AnnotationTestFunctions { assertNull(result); } + @Test + public void testGetByProblematicId() throws Exception { + Drug drug = chemblParser.getDrugById(new MiriamData(MiriamType.CHEMBL_COMPOUND, "CHEMBL3545284")); + assertNull(drug); + } + } diff --git a/commons/pom.xml b/commons/pom.xml index 43155b85d7b21e549849e1de54463ed49812290c..3fb0560e394f715eb7f7b4fa4c904685a653a050 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>commons</artifactId> <name>Mapviewer commons</name> diff --git a/converter-CellDesigner/pom.xml b/converter-CellDesigner/pom.xml index f5c236331c3d776561989d1b3400292401cc0d33..f8f953735e329af427a993c343e1f38f87fce8ae 100644 --- a/converter-CellDesigner/pom.xml +++ b/converter-CellDesigner/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>converter-CellDesigner</artifactId> <name>CellDesigner converter</name> @@ -17,13 +17,13 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> diff --git a/converter-SBGNML/pom.xml b/converter-SBGNML/pom.xml index dbcacef14adf0ae0e21fae8e788b6b69bc2680ed..e5638df9c601c61892a7ad2a424cb9dd5e04a359 100644 --- a/converter-SBGNML/pom.xml +++ b/converter-SBGNML/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>converter-SBGNML</artifactId> @@ -20,26 +20,26 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>persist</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> <scope>test</scope> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-graphics</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> diff --git a/converter-graphics/pom.xml b/converter-graphics/pom.xml index cedf0284de869cb927636ac1f39a8be327aac803..aea9fcc26bf95eac028c7fe280004705d30d7c60 100644 --- a/converter-graphics/pom.xml +++ b/converter-graphics/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>converter-graphics</artifactId> <name>MapViewer graphics converter</name> @@ -18,13 +18,13 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model-command</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> diff --git a/converter-sbml/pom.xml b/converter-sbml/pom.xml index 10c65045dd759cc3e0c8ebbcb758d27081da0a36..9928e1fefc624cb2fbc5a570b9708620e02bde44 100644 --- a/converter-sbml/pom.xml +++ b/converter-sbml/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>converter-sbml</artifactId> <name>converter-sbml</name> @@ -40,22 +40,22 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model-command</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> @@ -167,7 +167,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-graphics</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> <scope>test</scope> </dependency> diff --git a/converter/pom.xml b/converter/pom.xml index 53ddac639e339267e612f2f188680f51fe1c5816..b35cc5c68cb3798107763708b431920ccd48bb0f 100644 --- a/converter/pom.xml +++ b/converter/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>converter</artifactId> @@ -15,7 +15,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>xerces</groupId> diff --git a/frontend-js/pom.xml b/frontend-js/pom.xml index 13321f7a6659c96e36424921a2140ed852733465..b9769fe8c7673bf2c2b6831330ea7959b7d648f2 100644 --- a/frontend-js/pom.xml +++ b/frontend-js/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>frontend-js</artifactId> <name>frontend-js</name> diff --git a/model-command/pom.xml b/model-command/pom.xml index a27bc6032bfb19e1e3530c07049a816705bf3dfa..251f04fd7f060c9e31a6c3177f554c7583cc3cae 100644 --- a/model-command/pom.xml +++ b/model-command/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>model-command</artifactId> <name>Model commands</name> @@ -16,7 +16,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> @@ -24,7 +24,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2--> diff --git a/model/pom.xml b/model/pom.xml index 7f7334114bfb89807bd3cbe3697db1a027e04a3a..b072e3e151595760575b521ef116119d21e4d452 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>model</artifactId> <name>model MapViewer</name> @@ -15,7 +15,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>commons</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Java xml serialization --> diff --git a/pathvisio/pom.xml b/pathvisio/pom.xml index 62bf2917bedde1371bf5539419c71c7a0e39a319..f5f8a7540961a7d18fc3fba787b03f85a71e918d 100644 --- a/pathvisio/pom.xml +++ b/pathvisio/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>pathvisio</artifactId> <name>Pathvisio plugin</name> @@ -77,26 +77,26 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-graphics</artifactId> <scope>test</scope> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model-command</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> diff --git a/persist/pom.xml b/persist/pom.xml index ca8bf18b1fe90cd07d032aaefcbd3dc204edbe86..3f01ddb4fa3e80e782f1c7b9b76dd75069c05185 100644 --- a/persist/pom.xml +++ b/persist/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>persist</artifactId> @@ -26,7 +26,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Hibernate --> diff --git a/pom.xml b/pom.xml index ef983f8eaf54fe8f6642ec7897c0199aeab5da5b..70971a9b54b36c89e5950854810c003bdec18cf4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> <packaging>pom</packaging> <name>parent MapViewer</name> diff --git a/rest-api/pom.xml b/rest-api/pom.xml index 01ff8c94955ee7624c1d75b9b148b225c700824a..097100b14ede1bc5768fcc20cce1fc23fd096f6d 100644 --- a/rest-api/pom.xml +++ b/rest-api/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>rest-api</artifactId> <name>rest-api</name> @@ -19,19 +19,19 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>service</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>pathvisio</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> diff --git a/service/pom.xml b/service/pom.xml index 38567d711920d442512c46f8536a5b05bc332c63..feb32832f5d0e3f3998ecbccd7e70368bcf165ff 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>service</artifactId> @@ -20,7 +20,7 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer dao --> @@ -28,47 +28,47 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>persist</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>model-command</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>annotation</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer cell designer parser --> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer SBGN-ML parser --> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-SBGNML</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the MapViewer graphics converter --> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-graphics</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- dependency from the SBML parser --> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter-sbml</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <!-- Log4J2 --> diff --git a/web/pom.xml b/web/pom.xml index 461b73488d99963c0982c40683e8f380daf6eac1..bc63a56d652d8e59a9495bdb56b45658412531a5 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>lcsb.mapviewer</groupId> <artifactId>parent</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </parent> <artifactId>web</artifactId> <packaging>jar</packaging> @@ -36,19 +36,19 @@ <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>service</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>rest-api</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>frontend-js</artifactId> - <version>17.1.3</version> + <version>17.1.4</version> </dependency> <dependency>