From d54528fd7a3a73b4a5dc8f013a151289733faa0e Mon Sep 17 00:00:00 2001 From: Johan Nystrom Date: Tue, 6 Dec 2022 18:27:09 +0900 Subject: [PATCH 1/6] Simplify some convoluted Intermine connection logic related to the names of lists to be exported. Lists were sometimes deleted twice, which resulted in a bug on the server side. Also, remove the obsolete scheme where lists are sometimes named with the 'Set:' prefix, sometimes not, and we checked for both names. --- .../t/server/viewer/intermine/Intermine.scala | 50 ++++++------------- 1 file changed, 15 insertions(+), 35 deletions(-) diff --git a/Toxygates/src/t/server/viewer/intermine/Intermine.scala b/Toxygates/src/t/server/viewer/intermine/Intermine.scala index b7f3ab7bd..0f735eaf0 100644 --- a/Toxygates/src/t/server/viewer/intermine/Intermine.scala +++ b/Toxygates/src/t/server/viewer/intermine/Intermine.scala @@ -86,48 +86,30 @@ class IntermineConnector(instance: IntermineInstance, /** * Add a set of probe lists by first mapping them to genes */ - def addProbeLists(ls: ListService, - lists: Iterable[StringList], replace: Boolean): Unit = { + def addProbeLists(ls: ListService, lists: Iterable[StringList], replace: Boolean): Unit = { - for (l <- lists) { - addProbeList(ls, l.items(), Some(l.name()), replace) + for { l <- lists } { + addProbeList(ls, l.items(), l.name(), replace) } } /** - * Obtain a valid list name, or None if the export cannot proceed. - * This potentially deletes a pre-existing list. + * Delete pre-existing lists with the same name as the one about to be exported, if replacement was requested. + * Returns a list name that may be used if the export can proceed, or None if it cannot. */ - private def validNameForExport(ls: ListService, name: Option[String], - replace: Boolean): Option[String] = { + private def checkListNameForExport(service: ListService, name: String, replace: Boolean): Option[String] = { + val serverList = Option(service.getList(name)) - var serverList = name.map(n => Option(ls.getList(n))).flatten - if (serverList != None && replace) { - ls.deleteList(serverList.get) - } - - //the Set: prefix gets appended by the front-end - if (serverList == None && name != None) { - val altName = name.get.split("Set:") - if (altName.size > 1) { - serverList = Option(ls.getList(altName(1))) - if (serverList != None) { - println(s"Assume list ${name.get} corresponds to ${altName(1)} on server") - } - } - } - if (serverList != None && replace) { + if (serverList.nonEmpty && replace) { println(s"Delete list $serverList for replacement") - ls.deleteList(serverList.get) + service.deleteList(serverList.get) } - val useName = name.getOrElse("") - if (serverList == None || replace) { - Some(useName) + if (serverList.isEmpty || replace) { + Some(name) } else { - val n = name.getOrElse("") //Could report this message to the user somehow - println(s"Not exporting list '$n' since it already existed (replacement not requested)") + println(s"Not exporting list '$name' since it already existed (replacement not requested)") // throw new IntermineException( // s"Unable to add list, ${name.get} already existed and replacement not requested") None @@ -137,8 +119,7 @@ class IntermineConnector(instance: IntermineInstance, /** * Add a probe list to InterMine by first mapping it into genes (lazily) */ - def addProbeList(ls: ListService, - probes: Iterable[String], name: Option[String], replace: Boolean, + def addProbeList(ls: ListService, probes: Iterable[String], name: String, replace: Boolean, tags: Seq[String] = Seq("toxygates")): Option[ItemList] = { addEntrezList(ls, () => @@ -148,10 +129,9 @@ class IntermineConnector(instance: IntermineInstance, /** * Add a list of NCBI/Entrez genes to InterMine */ - def addEntrezList(ls: ListService, getGenes: () => Iterable[String], - name: Option[String], replace: Boolean, + def addEntrezList(ls: ListService, getGenes: () => Iterable[String], name: String, replace: Boolean, tags: Seq[String] = Seq("toxygates")): Option[ItemList] = { - validNameForExport(ls, name, replace) match { + checkListNameForExport(ls, name, replace) match { case Some(useName) => val ci = new ls.ListCreationInfo("Gene", useName) //Note: we have the option of doing a fuzzy (e.g. symbol-based) export here From b704d958b0b3568f798f1d5addf9c366bd3c4e24 Mon Sep 17 00:00:00 2001 From: Johan Nystrom Date: Tue, 6 Dec 2022 18:30:19 +0900 Subject: [PATCH 2/6] Simplify Intermine support --- .../src/t/server/viewer/intermine/Intermine.scala | 13 +++++-------- .../viewer/intermine/IntermineServiceImpl.scala | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Toxygates/src/t/server/viewer/intermine/Intermine.scala b/Toxygates/src/t/server/viewer/intermine/Intermine.scala index 0f735eaf0..62eceef14 100644 --- a/Toxygates/src/t/server/viewer/intermine/Intermine.scala +++ b/Toxygates/src/t/server/viewer/intermine/Intermine.scala @@ -79,15 +79,13 @@ class IntermineConnector(instance: IntermineInstance, } println(s"${filtered take 100} ...") - Some(new StringList(StringList.PROBES_LIST_TYPE, - l.getName(), filtered.toArray)) + Some(new StringList(StringList.PROBES_LIST_TYPE, l.getName(), filtered.toArray)) } /** * Add a set of probe lists by first mapping them to genes */ def addProbeLists(ls: ListService, lists: Iterable[StringList], replace: Boolean): Unit = { - for { l <- lists } { addProbeList(ls, l.items(), l.name(), replace) } @@ -120,22 +118,21 @@ class IntermineConnector(instance: IntermineInstance, * Add a probe list to InterMine by first mapping it into genes (lazily) */ def addProbeList(ls: ListService, probes: Iterable[String], name: String, replace: Boolean, - tags: Seq[String] = Seq("toxygates")): Option[ItemList] = { + tags: Seq[String] = Seq("toxygates")): Option[ItemList] = addEntrezList(ls, - () => platforms.resolve(probes.toSeq).flatMap(_.genes.map(_.identifier)), name, replace, tags) - } + /** * Add a list of NCBI/Entrez genes to InterMine */ - def addEntrezList(ls: ListService, getGenes: () => Iterable[String], name: String, replace: Boolean, + def addEntrezList(ls: ListService, genes: Seq[String], name: String, replace: Boolean, tags: Seq[String] = Seq("toxygates")): Option[ItemList] = { checkListNameForExport(ls, name, replace) match { case Some(useName) => val ci = new ls.ListCreationInfo("Gene", useName) //Note: we have the option of doing a fuzzy (e.g. symbol-based) export here - ci.setContent(getGenes().toSeq.asJava) + ci.setContent(genes.asJava) ci.addTags(tags.asJava) println(s"Exporting list '$useName'") Some(ls.createList(ci)) diff --git a/Toxygates/src/t/server/viewer/intermine/IntermineServiceImpl.scala b/Toxygates/src/t/server/viewer/intermine/IntermineServiceImpl.scala index 6fab1cc8b..18fdf2b61 100644 --- a/Toxygates/src/t/server/viewer/intermine/IntermineServiceImpl.scala +++ b/Toxygates/src/t/server/viewer/intermine/IntermineServiceImpl.scala @@ -107,7 +107,7 @@ class IntermineServiceImpl extends TServiceServlet with IntermineService { ls.setAuthentication(session) val tags = List() - val tempList = conn.addProbeList(ls, list.items(), Some("temp_enrichment"), false, tags) + val tempList = conn.addProbeList(ls, list.items(), "temp_enrichment", false, tags) tempList match { case Some(tl) => From e347d53357565444c5b0762f03d1cac5eebf7c9a Mon Sep 17 00:00:00 2001 From: Johan Nystrom Date: Mon, 5 Dec 2022 17:29:49 +0900 Subject: [PATCH 3/6] Restore antlr 2.7.6 dependency, since it was still needed for Intermine --- ivy.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ivy.xml b/ivy.xml index 024b95cab..b7e882a46 100644 --- a/ivy.xml +++ b/ivy.xml @@ -36,6 +36,9 @@ + + + From 5a42d939865c7e58ec0b7dbb4df45e7aad14317c Mon Sep 17 00:00:00 2001 From: Johan Nystrom Date: Thu, 15 Dec 2022 19:53:01 +0900 Subject: [PATCH 4/6] In build.xml, copy in manual jars from mlib after ivy:retrieve, so that ivy jars can be overwritten if needed --- Toxygates/build.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Toxygates/build.xml b/Toxygates/build.xml index cd31078c3..76fbb515b 100644 --- a/Toxygates/build.xml +++ b/Toxygates/build.xml @@ -73,10 +73,12 @@ + + + - From 53caab27b50769476c431ea3cba75eedd1392a30 Mon Sep 17 00:00:00 2001 From: Johan Nystrom Date: Mon, 2 Jan 2023 13:10:24 +0900 Subject: [PATCH 5/6] Add custom compiled intermine-ws-java-3.1.0.jar to mlib, until upstream fixes a bug related to unresolved identifiers --- Toxygates/mlib/intermine-ws-java-3.1.0.jar | Bin 0 -> 100185 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Toxygates/mlib/intermine-ws-java-3.1.0.jar diff --git a/Toxygates/mlib/intermine-ws-java-3.1.0.jar b/Toxygates/mlib/intermine-ws-java-3.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..a792488654b2be72efcc23be18c0d8a0d374048b GIT binary patch literal 100185 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 Date: Tue, 3 Jan 2023 10:36:45 +0900 Subject: [PATCH 6/6] Simplify IntermineConnector.checkListNameForExport by moving the logic to addEntrezList. Add comments. Change the tag for newly created lists from "toxygates" to "panomicon". --- .../t/server/viewer/intermine/Intermine.scala | 70 ++++++++----------- 1 file changed, 31 insertions(+), 39 deletions(-) diff --git a/Toxygates/src/t/server/viewer/intermine/Intermine.scala b/Toxygates/src/t/server/viewer/intermine/Intermine.scala index 62eceef14..4fc7a8661 100644 --- a/Toxygates/src/t/server/viewer/intermine/Intermine.scala +++ b/Toxygates/src/t/server/viewer/intermine/Intermine.scala @@ -85,60 +85,52 @@ class IntermineConnector(instance: IntermineInstance, /** * Add a set of probe lists by first mapping them to genes */ - def addProbeLists(ls: ListService, lists: Iterable[StringList], replace: Boolean): Unit = { + def addProbeLists(ls: ListService, lists: Iterable[StringList], replace: Boolean): Unit = for { l <- lists } { addProbeList(ls, l.items(), l.name(), replace) } - } - - /** - * Delete pre-existing lists with the same name as the one about to be exported, if replacement was requested. - * Returns a list name that may be used if the export can proceed, or None if it cannot. - */ - private def checkListNameForExport(service: ListService, name: String, replace: Boolean): Option[String] = { - val serverList = Option(service.getList(name)) - - if (serverList.nonEmpty && replace) { - println(s"Delete list $serverList for replacement") - service.deleteList(serverList.get) - } - - if (serverList.isEmpty || replace) { - Some(name) - } else { - //Could report this message to the user somehow - println(s"Not exporting list '$name' since it already existed (replacement not requested)") - // throw new IntermineException( - // s"Unable to add list, ${name.get} already existed and replacement not requested") - None - } - } /** * Add a probe list to InterMine by first mapping it into genes (lazily) */ def addProbeList(ls: ListService, probes: Iterable[String], name: String, replace: Boolean, - tags: Seq[String] = Seq("toxygates")): Option[ItemList] = + tags: Seq[String] = Seq("panomicon")): Option[ItemList] = addEntrezList(ls, platforms.resolve(probes.toSeq).flatMap(_.genes.map(_.identifier)), name, replace, tags) - /** - * Add a list of NCBI/Entrez genes to InterMine + /** + * Add a list of NCBI/Entrez genes to InterMine. + * @param ls the ListService + * @param genes the genes (entrez IDs) to be added + * @param name the name of the list to be created + * @param replace whether any existing list with the same name should be replaced + * @param tags any tags to be added to the list (stored on the InterMine server) + * @return the ItemList if it was successfully created, or None if the operation failed. */ def addEntrezList(ls: ListService, genes: Seq[String], name: String, replace: Boolean, - tags: Seq[String] = Seq("toxygates")): Option[ItemList] = { - checkListNameForExport(ls, name, replace) match { - case Some(useName) => - val ci = new ls.ListCreationInfo("Gene", useName) - //Note: we have the option of doing a fuzzy (e.g. symbol-based) export here - ci.setContent(genes.asJava) - ci.addTags(tags.asJava) - println(s"Exporting list '$useName'") - Some(ls.createList(ci)) - case None => - None + tags: Seq[String] = Seq("panomicon")): Option[ItemList] = { + + for {existingList <- Option(ls.getList(name))} { + if (replace) { + println(s"Delete list $existingList for replacement") + ls.deleteList(existingList) + } else { + //The list existed and replacement was not requested, so we can't proceed. + //Could report this message to the user somehow + println(s"Not exporting list '$name' since it already existed (replacement not requested)") + //throw new IntermineException( + // s"Unable to add list, ${name.get} already existed and replacement not requested + return None + } } + + val ci = new ls.ListCreationInfo("Gene", name) + //Note: we have the option of doing a fuzzy (e.g. symbol-based) export here + ci.setContent(genes.asJava) + ci.addTags(tags.asJava) + println(s"Exporting list '$name'") + Some(ls.createList(ci)) } }