From 05400109b36abc19409062583363cd8313dd894e Mon Sep 17 00:00:00 2001 From: jweiser Date: Sat, 31 May 2025 23:41:29 -0400 Subject: [PATCH 1/3] includes "replace_by" terms in obsolete report --- .../release/goupdate/GoTermsUpdater.java | 69 ++++++++----------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/reactome/release/goupdate/GoTermsUpdater.java b/src/main/java/org/reactome/release/goupdate/GoTermsUpdater.java index 29e871a..2df0f73 100644 --- a/src/main/java/org/reactome/release/goupdate/GoTermsUpdater.java +++ b/src/main/java/org/reactome/release/goupdate/GoTermsUpdater.java @@ -373,49 +373,40 @@ private void processObsoleteGOTerm(Map> goTermsFromF { StringBuilder attemptToDeleteObsoleteMessage = new StringBuilder(); Map referrersCount = new HashMap<>(); - // Only add instance(s) to deletion list if they have a valid replacement. - if (goTermsFromFile.get(goID).get(GoUpdateConstants.REPLACED_BY) != null) - { - instancesForDeletion.addAll(goInstances); - attemptToDeleteObsoleteMessage.append(" Replacement Accession: ").append(goTermsFromFile.get(goID).get(GoUpdateConstants.REPLACED_BY)); - } - else - { - // ...or, if an obsolete term has no replacement AND also has no referrers, it can be - // safely be deleted because nothing will be affected. - // - // (Check that the instance has not already been added to instancesForDeletion by some other path) - goInstances.stream().filter(inst -> !instancesForDeletion.contains(inst)).forEach( inst -> { - try + // If an obsolete term has no replacement AND also has no referrers, it can be + // safely be deleted because nothing will be affected. + // + // (Check that the instance has not already been added to instancesForDeletion by some other path) + goInstances.stream().filter(inst -> !instancesForDeletion.contains(inst)).forEach( inst -> { + try + { + referrersCount.putAll( GoTermsUpdater.getReferrerCountsExcludingGOEntities(inst) ); + if (referrersCount.isEmpty()) { - referrersCount.putAll( GoTermsUpdater.getReferrerCountsExcludingGOEntities(inst) ); - if (referrersCount.isEmpty()) - { - instancesForDeletion.add(inst); - } - else // if referrers DO exists, log that, with suggestions about REPLACE_BY/CONSIDER terms. - { - @SuppressWarnings("unchecked") - List replaceByList = (List) goTermsFromFile.get(goID).get(GoUpdateConstants.REPLACED_BY); - @SuppressWarnings("unchecked") - List considerList = (List) goTermsFromFile.get(goID).get(GoUpdateConstants.CONSIDER); - String replaceBy = ""; - String consider = ""; - replaceBy = replaceByList != null && !replaceByList.isEmpty() ? "Replace by: " + String.join(", ", replaceByList) : ""; - consider = considerList != null && !considerList.isEmpty() ? "Consider: " + String.join(", ", considerList) : ""; - String replacementTermString = replaceBy + consider; - replacementTermString = replacementTermString.length() == 0 ? "N/A" : replacementTermString; - obsoleteAccessionPrinter.printRecord(inst.getDBID(), inst.getSchemClass().getName(), inst.getAttributeValue(ReactomeJavaConstants.accession), "Manual cleanup (referrers exist)", replacementTermString); - } + instancesForDeletion.add(inst); } - catch (Exception e) + else // if referrers DO exist, log that, with suggestions about REPLACE_BY/CONSIDER terms. { - e.printStackTrace(); - obsoleteAccessionLogger.error(e); - attemptToDeleteObsoleteMessage.append(" An exception occcured while trying to get the number of referrers - this instance will not be deleted. Manual clean up may be necessary."); + @SuppressWarnings("unchecked") + List replaceByList = (List) goTermsFromFile.get(goID).get(GoUpdateConstants.REPLACED_BY); + @SuppressWarnings("unchecked") + List considerList = (List) goTermsFromFile.get(goID).get(GoUpdateConstants.CONSIDER); + String replaceBy = ""; + String consider = ""; + replaceBy = replaceByList != null && !replaceByList.isEmpty() ? "Replace by: " + String.join(", ", replaceByList) : ""; + consider = considerList != null && !considerList.isEmpty() ? "Consider: " + String.join(", ", considerList) : ""; + String replacementTermString = replaceBy + consider; + replacementTermString = replacementTermString.length() == 0 ? "N/A" : replacementTermString; + obsoleteAccessionPrinter.printRecord(inst.getDBID(), inst.getSchemClass().getName(), inst.getAttributeValue(ReactomeJavaConstants.accession), "Manual cleanup (referrers exist)", replacementTermString); } - }); - } + } + catch (Exception e) + { + e.printStackTrace(); + obsoleteAccessionLogger.error(e); + attemptToDeleteObsoleteMessage.append(" An exception occcured while trying to get the number of referrers - this instance will not be deleted. Manual clean up may be necessary."); + } + }); logger.warn("GO:{} ({}) marked as OBSOLETE!{}",goID, goInstances.toString(), attemptToDeleteObsoleteMessage); } From f8b60a1c87deb0720ea35791d6d66d51e4ef28cb Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Thu, 7 Aug 2025 16:35:28 -0400 Subject: [PATCH 2/3] Update pom.xml --- pom.xml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 2bdb4a1..cd6d350 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.reactome.release go-update - 1.1.1 + 1.1.2 jar go-update @@ -20,9 +20,18 @@ Solomon Shorser - solomon.shorser@oicr.on.ca - Reactome - https://reactome.org + + alumni + + Ontario Institute for Cancer Research + https://oicr.on.ca + + + + Joel Weiser + jweiser@oicr.on.ca + Ontario Institute for Cancer Research + https://oicr.on.ca @@ -50,7 +59,7 @@ org.reactome.release release-common-lib - 1.2.0 + 2.0.0 From 4e5a0b012ce209f006ea4ba231152a4b94dbd7b4 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Thu, 7 Aug 2025 16:38:39 -0400 Subject: [PATCH 3/3] Update checkstyle.xml --- checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checkstyle.xml b/checkstyle.xml index 8506a80..408879b 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -3,7 +3,7 @@ "https://checkstyle.org/dtds/configuration_1_3.dtd"> - +