diff --git a/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/controller/WebinIsaToXmlSubmissionController.java b/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/controller/WebinIsaToXmlSubmissionController.java index 50a1ac4..1531232 100644 --- a/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/controller/WebinIsaToXmlSubmissionController.java +++ b/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/controller/WebinIsaToXmlSubmissionController.java @@ -106,6 +106,8 @@ public String performSubmissionToEna( webinHttpSubmissionService.performWebinSubmission( webinUserName, document.asXML(), webinPassword); final Receipt receiptJson = receiptConversionService.readReceiptXml(receiptXml); + System.out.println(receiptXml); + System.out.println(receiptJson); final MarsReceipt marsReceipt = marsReceiptService.convertReceiptToMars(receiptJson, isaJson); return marsReceiptService.convertMarsReceiptToJson(marsReceipt); diff --git a/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/sra/service/MarsReceiptService.java b/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/sra/service/MarsReceiptService.java index 49907e5..d9ec770 100644 --- a/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/sra/service/MarsReceiptService.java +++ b/repository-services/isajson-ena/src/main/java/com/elixir/biohackaton/ISAToSRA/sra/service/MarsReceiptService.java @@ -50,11 +50,12 @@ public String convertMarsReceiptToJson(final MarsReceipt marsReceipt) { */ public MarsReceipt convertReceiptToMars(final Receipt receipt, final IsaJson isaJson) { return buildMarsReceipt( - "ena.embl", // https://registry.identifiers.org/registry/ena.embl + "ena", // TODO decide whether to use instead + // https://registry.identifiers.org/registry/ena.embl getAliasAccessionPairs( Study.Fields.title, Optional.ofNullable(receipt.getStudies()).orElse(receipt.getProjects())), - getAliasAccessionPairs(Sample.Fields.id, receipt.getSamples()), + null, null, getAliasAccessionPairs(OtherMaterial.Fields.id, receipt.getExperiments()), getAliasAccessionPairs(DataFile.Fields.id, receipt.getRuns()), @@ -63,6 +64,12 @@ public MarsReceipt convertReceiptToMars(final Receipt receipt, final IsaJson isa isaJson); } + private static String getPreRandomizedAlias(ReceiptObject receiptObject) { + // Convert Arabidopsis thaliana-0.49105604184136276 -> Arabidopsis thaliana + String alias = receiptObject.getAlias(); + return alias.substring(0, alias.lastIndexOf("-")); + } + private ReceiptAccessionsMap getAliasAccessionPairs( String keyNameInput, final List items) { return new ReceiptAccessionsMap() { @@ -73,7 +80,9 @@ private ReceiptAccessionsMap getAliasAccessionPairs( Optional.ofNullable(items).orElse(new ArrayList<>()).stream() .filter(item -> item != null) .collect( - Collectors.toMap(ReceiptObject::getAlias, ReceiptObject::getAccession))); + Collectors.toMap( + MarsReceiptService::getPreRandomizedAlias, + ReceiptObject::getAccession))); } }; } diff --git a/repository-services/receipt/src/main/java/com/elixir/biohackaton/ISAToSRA/receipt/ReceiptAccessionsMap.java b/repository-services/receipt/src/main/java/com/elixir/biohackaton/ISAToSRA/receipt/ReceiptAccessionsMap.java index 4e64ad5..dd88d62 100644 --- a/repository-services/receipt/src/main/java/com/elixir/biohackaton/ISAToSRA/receipt/ReceiptAccessionsMap.java +++ b/repository-services/receipt/src/main/java/com/elixir/biohackaton/ISAToSRA/receipt/ReceiptAccessionsMap.java @@ -19,4 +19,12 @@ public ReceiptAccessionsMap(String keyName, String keyValue) { } }; } + + public String toString() { + String result = "ReceiptAccessionsMap:" + keyName + "\n"; + for (String key: accessionMap.keySet()) { + result += key + ":" + accessionMap.get(key) + "\n"; + } + return result; + } }