diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java index 20f97ebc08cbf590ef79ddfff1e61d1916bd2668..1f6806f506f15b78a52e384bf8a25af244123447 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java @@ -741,4 +741,18 @@ public class ChemicalParser extends CachableInterface implements IExternalServic return result; } + public List<Chemical> getChemicalsBySynonym(MiriamData diseaseId, String synonym) throws ChemicalSearchException { + try { + Collection<MeSH> meshList; + meshList = meshParser.getMeshBySynonym(synonym); + List<MiriamData> chemicalIds = new ArrayList<>(); + for (MeSH mesh : meshList) { + chemicalIds.add(new MiriamData(MiriamType.TOXICOGENOMIC_CHEMICAL, mesh.getMeSHId())); + } + return getChemicals(diseaseId, chemicalIds); + } catch (AnnotatorException e) { + throw new ChemicalSearchException(e); + } + } + } diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java index 3fa426ce6eb8fb790058b2cbe843a01196352991..a6990d48f1f486ff7c984983bc9cd105688869b4 100644 --- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java +++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java @@ -51,7 +51,7 @@ public class ChemicalParserTest extends AnnotationTestFunctions { @Before public void setUp() throws Exception { - chemicalParser.setCache(new GeneralCacheWithExclusion(cache, 10)); + chemicalParser.setCache(new GeneralCacheWithExclusion(cache, 1)); } @After @@ -177,16 +177,32 @@ public class ChemicalParserTest extends AnnotationTestFunctions { @Test public void testGetGlutathioneDisulfideData() throws Exception { try { - MiriamData dopamineId = new MiriamData(MiriamType.TOXICOGENOMIC_CHEMICAL, "D019803"); + MiriamData glutathioneDisulfideId = new MiriamData(MiriamType.TOXICOGENOMIC_CHEMICAL, "D019803"); List<MiriamData> idsList = new ArrayList<>(); - idsList.add(dopamineId); + idsList.add(glutathioneDisulfideId); List<Chemical> chemicals = chemicalParser.getChemicals(parkinsonDiseaseId, idsList); assertEquals(1, chemicals.size()); - Chemical dopamine = chemicals.get(0); + Chemical glutathioneDisulfide = chemicals.get(0); - assertTrue(dopamine.getSynonyms().size() > 0); + assertTrue(glutathioneDisulfide.getSynonyms().size() > 0); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetChemicalBySynonym() throws Exception { + try { + List<Chemical> chemicals = chemicalParser.getChemicalsBySynonym(parkinsonDiseaseId, "MPTP"); + + assertEquals(1, chemicals.size()); + Chemical mptp = chemicals.get(0); + + assertTrue(mptp.getSynonyms().contains("MPTP")); } catch (Exception e) { e.printStackTrace(); throw e;