From 5861e72caba801afb59c3fe9063b2211df152dfe Mon Sep 17 00:00:00 2001 From: Chris T Date: Wed, 13 Apr 2022 14:06:32 -0400 Subject: [PATCH 1/4] germplasm import: add synonyms to germplasm import --- .../brapps/importer/model/base/Germplasm.java | 4 ++++ ...V0.5.35__germplasm_import_add_synonyms.sql | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/main/resources/db/migration/V0.5.35__germplasm_import_add_synonyms.sql diff --git a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java index 09388ed45..d7de8c205 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java +++ b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java @@ -65,6 +65,10 @@ public class Germplasm implements BrAPIObject { @ImportFieldMetadata(id="externalUID", name="External UID", description = "External UID") private String externalUID; + @ImportFieldType(type= ImportFieldTypeEnum.TEXT) + @ImportFieldMetadata(id="synonyms", name="Synonyms", description = "Optional list of germplasm synonyms separated by semicolons (;).") + private String synonyms; + @ImportFieldType(type= ImportFieldTypeEnum.INTEGER) @ImportFieldMetadata(id="entryNo", name="Entry No.", description = "The order of germplasm in the import list ( 1,2,3,….n). If no entry number is specified in the import germplasm list, the database will assign entry number upon import.") private String entryNo; diff --git a/src/main/resources/db/migration/V0.5.35__germplasm_import_add_synonyms.sql b/src/main/resources/db/migration/V0.5.35__germplasm_import_add_synonyms.sql new file mode 100644 index 000000000..f583f2e06 --- /dev/null +++ b/src/main/resources/db/migration/V0.5.35__germplasm_import_add_synonyms.sql @@ -0,0 +1,21 @@ +/* + * See the NOTICE file distributed with this work for additional information + * regarding copyright ownership. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +update importer_mapping +set mapping = '[{"id": "f8d43c7e-a618-4c16-8829-3085f7202a67", "mapping": [{"id": "f384837e-ad8d-4dbe-b54e-87b57070bed1", "value": {"fileFieldName": "Name"}, "objectId": "germplasmName"}, {"id": "39628d14-458b-429b-8e66-bb48e0445a83", "value": {"fileFieldName": "Breeding Method"}, "objectId": "breedingMethod"}, {"id": "f1ba63e1-f5e4-433f-a53e-1c2f3e2fa71f", "value": {"fileFieldName": "Source"}, "objectId": "germplasmSource"}, {"id": "f5892565-f888-4596-be82-ab8eeabf37ce", "value": {"fileFieldName": "External UID"}, "objectId": "externalUID"}, {"id": "65507e5d-2d66-4595-8763-e772fe25c870", "value": {"fileFieldName": "Entry No"}, "objectId": "entryNo"}, {"id": "3eae24c1-ca4a-48a2-96d0-3cf4630acd3a", "value": {"fileFieldName": "Female Parent GID"}, "objectId": "femaleParentDBID"}, {"id": "2dbd7262-93a1-44b0-86b7-f5fca290b965", "value": {"fileFieldName": "Male Parent GID"}, "objectId": "maleParentDBID"}, {"id": "6f7f1539-6e8f-4ede-b7d3-3423cc63abec", "value": {"fileFieldName": "Female Parent Entry No"}, "objectId": "femaleParentEntryNo"}, {"id": "25fe9954-bca7-42f1-818a-5f71e242fa1f", "value": {"fileFieldName": "Male Parent Entry No"}, "objectId": "maleParentEntryNo"}, {"id": "b910adfe-a474-47a0-8410-514578898436", "value": {"fileFieldName": "Synonyms"}, "objectId": "synonyms"}, {"id": "15836d5f-8194-40a8-a771-114eaae31eb4", "objectId": "germplasmPUI"}, {"id": "675b6af8-5a17-4146-a503-2e4e1a65d5fa", "objectId": "acquisitionDate"}, {"id": "69a3bd3c-cebc-435c-acdd-0be62dda25ed", "objectId": "countryOfOrigin"}, {"id": "8ab25267-20f2-450e-89ca-21634ff8fadb", "objectId": "collection"}, {"id": "ce1701e2-2f61-4250-8595-9536e3f5ddcf", "objectId": "AdditionalInfo"}, {"id": "3470e9df-a028-45b7-943f-198bc62b6dbe", "objectId": "ExternalReference"}], "objectId": "Germplasm"}]', + file = '[{"Name": "BITest Pinot Noir", "Source": "Unknown", "Entry No": "1", "External UID": "", "Breeding Method": "UMM", "Male Parent GID": "", "Female Parent GID": "", "Male Parent Entry No": "", "Female Parent Entry No": "", "Synonyms": "test1;test2"}, {"Name": "BITest Pixie", "Source": "Winters Nursery", "Entry No": "2", "External UID": "", "Breeding Method": "CFV", "Male Parent GID": "", "Female Parent GID": "", "Male Parent Entry No": "", "Female Parent Entry No": "1", "Synonyms": "test1;test2"}, {"Name": "BITest BI002", "Source": "Ithaca Nursery", "Entry No": "7", "External UID": "12231321", "Breeding Method": "Biparental cross", "Male Parent GID": "", "Female Parent GID": "", "Male Parent Entry No": "", "Female Parent Entry No": "2", "Synonyms": "test1;test2"}, {"Name": "BITest BI003", "Source": "Ithaca Nursery", "Entry No": "8", "External UID": "", "Breeding Method": "BPC", "Male Parent GID": "", "Female Parent GID": "", "Male Parent Entry No": "7", "Female Parent Entry No": "2", "Synonyms": "test1;test2"}, {"Name": "BITest Pinot Noir", "Source": "Unknown", "Entry No": "3", "External UID": "", "Breeding Method": "UMM", "Male Parent GID": "", "Female Parent GID": "5fb01ea5-c212-4cfa-84e4-6d190379341f", "Male Parent Entry No": "", "Female Parent Entry No": "", "Synonyms": "test1;test2"}, {"Name": "BITest Pixie", "Source": "Winters Nursery", "Entry No": "4", "External UID": "", "Breeding Method": "CFV", "Male Parent GID": "640e8b58-1b1c-44a6-91a6-85b2b773376b", "Female Parent GID": "5fb01ea5-c212-4cfa-84e4-6d190379341f", "Male Parent Entry No": "", "Female Parent Entry No": "", "Synonyms": "test1;test2"}, {"Name": "BITest BI002", "Source": "Ithaca Nursery", "Entry No": "5", "External UID": "12231321", "Breeding Method": "Biparental cross", "Male Parent GID": "", "Female Parent GID": "5fb01ea5-c212-4cfa-84e4-6d190379341f", "Male Parent Entry No": "", "Female Parent Entry No": "2", "Synonyms": "test1;test2"}]' +where name = 'GermplasmTemplateMap'; \ No newline at end of file From b55890cd0b69f9422a4c95a61ba7c245da22bc54 Mon Sep 17 00:00:00 2001 From: Chris T Date: Thu, 14 Apr 2022 16:03:45 -0400 Subject: [PATCH 2/4] germplasm synonyms: process synonyms on GET. Add to file export. --- .../brapi/v2/dao/BrAPIGermplasmDAO.java | 18 +++++++++++++-- .../v2/services/BrAPIGermplasmService.java | 11 +++++++++ .../brapps/importer/model/base/Germplasm.java | 23 ++++++++++++++++++- .../germplasm/GermplasmFileColumns.java | 3 ++- .../breedinginsight/utilities/Utilities.java | 19 +++++++++++++++ 5 files changed, 70 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java index 497157c9d..60e22a7f6 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java @@ -26,6 +26,7 @@ import org.brapi.client.v2.modules.germplasm.GermplasmApi; import org.brapi.v2.model.BrAPIExternalReference; import org.brapi.v2.model.germ.BrAPIGermplasm; +import org.brapi.v2.model.germ.BrAPIGermplasmSynonyms; import org.brapi.v2.model.germ.request.BrAPIGermplasmSearchRequest; import org.breedinginsight.brapi.v2.constants.BrAPIAdditionalInfoFields; import org.breedinginsight.brapps.importer.daos.ImportDAO; @@ -111,6 +112,11 @@ public List getRawGermplasm(UUID programId) throws ApiException private Map fetchProgramGermplasm(UUID programId) throws ApiException { GermplasmApi api = new GermplasmApi(programDAO.getCoreClient(programId)); + // Get the program key + List programs = programDAO.get(programId); + if (programs.size() != 1) throw new InternalServerException("Program was not found for given key"); + Program program = programs.get(0); + // Set query params and make call BrAPIGermplasmSearchRequest germplasmSearch = new BrAPIGermplasmSearchRequest(); germplasmSearch.externalReferenceIDs(List.of(programId.toString())); @@ -119,7 +125,7 @@ private Map fetchProgramGermplasm(UUID programId) throws api::searchGermplasmPost, api::searchGermplasmSearchResultsDbIdGet, germplasmSearch - )); + ), program.getKey()); } /** @@ -128,7 +134,7 @@ private Map fetchProgramGermplasm(UUID programId) throws * @return Map * @throws ApiException */ - private Map processGermplasmForDisplay(List programGermplasm) { + private Map processGermplasmForDisplay(List programGermplasm, String programKey) { // Process the germplasm Map programGermplasmMap = new HashMap<>(); log.debug("processing germ for display: " + programGermplasm); @@ -144,6 +150,14 @@ private Map processGermplasmForDisplay(List synonym.getSynonym()) + .collect(Collectors.joining(";")); + row.put("Synonyms", joinedSynonyms); + } + processedData.add(row); } diff --git a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java index d7de8c205..30357881f 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java +++ b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java @@ -24,6 +24,7 @@ import org.brapi.v2.model.core.BrAPIListTypes; import org.brapi.v2.model.core.request.BrAPIListNewRequest; import org.brapi.v2.model.germ.BrAPIGermplasm; +import org.brapi.v2.model.germ.BrAPIGermplasmSynonyms; import org.breedinginsight.brapps.importer.model.config.*; import org.breedinginsight.dao.db.tables.pojos.BreedingMethodEntity; import org.breedinginsight.model.Program; @@ -196,6 +197,20 @@ public BrAPIGermplasm constructBrAPIGermplasm(BreedingMethodEntity breedingMetho germplasm.putAdditionalInfoItem("breedingMethod", breedingMethod.getName()); } + // Synonyms + String blobSynonyms = getSynonyms(); + List brapiSynonyms = new ArrayList<>(); + if (synonyms != null) { + Set synonyms = Set.of(blobSynonyms.split(";")); + // Create synonym + for (String synonym: synonyms) { + BrAPIGermplasmSynonyms brapiSynonym = new BrAPIGermplasmSynonyms(); + brapiSynonym.setSynonym(synonym); + brapiSynonyms.add(brapiSynonym); + } + germplasm.setSynonyms(brapiSynonyms); + } + return germplasm; } @@ -218,6 +233,13 @@ private void setBrAPIGermplasmCommitFields(BrAPIGermplasm germplasm, String prog DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); germplasm.putAdditionalInfoItem("createdDate", formatter.format(now)); + + // Update our synonyms to [-] + if (germplasm.getSynonyms() != null && !germplasm.getSynonyms().isEmpty()) { + for (BrAPIGermplasmSynonyms synonym: germplasm.getSynonyms()) { + synonym.setSynonym(Utilities.appendProgramKey(synonym.getSynonym(), programKey, germplasm.getAccessionNumber())); + } + } } public BrAPIGermplasm constructBrAPIGermplasm(Program program, BreedingMethodEntity breedingMethod, User user, boolean commit, String referenceSource, Supplier nextVal) { @@ -235,5 +257,4 @@ public BrAPIGermplasm constructBrAPIGermplasm(Program program, BreedingMethodEnt return germplasm; } - } \ No newline at end of file diff --git a/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java b/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java index 456d7bd8f..79710343e 100644 --- a/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java +++ b/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java @@ -35,7 +35,8 @@ public enum GermplasmFileColumns { ENTRY_NO("Entry No", Column.ColumnDataType.NUMERICAL), FEMALE_PARENT_ENTRY_NO("Female Parent Entry No", Column.ColumnDataType.NUMERICAL), MALE_PARENT_ENTRY_NO("Male Parent Entry No", Column.ColumnDataType.NUMERICAL), - EXTERNAL_UID("External UID", Column.ColumnDataType.STRING); + EXTERNAL_UID("External UID", Column.ColumnDataType.STRING), + SYNONYMS("Synonyms", Column.ColumnDataType.STRING); private final Column column; diff --git a/src/main/java/org/breedinginsight/utilities/Utilities.java b/src/main/java/org/breedinginsight/utilities/Utilities.java index 3078b1a07..f949bfff9 100644 --- a/src/main/java/org/breedinginsight/utilities/Utilities.java +++ b/src/main/java/org/breedinginsight/utilities/Utilities.java @@ -18,6 +18,7 @@ package org.breedinginsight.utilities; import org.apache.commons.lang3.StringUtils; +import org.brapi.v2.model.germ.BrAPIGermplasmSynonyms; import java.util.List; import java.util.Optional; @@ -62,4 +63,22 @@ public static String appendProgramKey(String original, String programKey, String return String.format("%s [%s]", original, programKey); } } + + /** + * Remove program key from a string. Returns a new value instead of altering original string. + * + * @param original + * @param programKey + * @param additionalKeyData + * @return + */ + public static String removeProgramKey(String original, String programKey, String additionalKeyData) { + if(StringUtils.isNotEmpty(additionalKeyData)) { + String keyValue = String.format(" [%s-%s]", programKey, additionalKeyData); + return original.replace(keyValue, ""); + } else { + String keyValue = String.format(" [%s]", programKey); + return original.replace(keyValue, ""); + } + } } From 077055b08762570e35753f642fc2a4366b295a12 Mon Sep 17 00:00:00 2001 From: Chris T Date: Tue, 19 Apr 2022 16:17:41 -0400 Subject: [PATCH 3/4] germplasm synonyms: remove dup synonyms on import --- .../brapps/importer/model/base/Germplasm.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java index 30357881f..ae0fc63d5 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java +++ b/src/main/java/org/breedinginsight/brapps/importer/model/base/Germplasm.java @@ -201,7 +201,10 @@ public BrAPIGermplasm constructBrAPIGermplasm(BreedingMethodEntity breedingMetho String blobSynonyms = getSynonyms(); List brapiSynonyms = new ArrayList<>(); if (synonyms != null) { - Set synonyms = Set.of(blobSynonyms.split(";")); + List synonyms = Arrays.asList(blobSynonyms.split(";")).stream() + .map(synonym -> synonym.strip()) + .distinct() + .collect(Collectors.toList()); // Create synonym for (String synonym: synonyms) { BrAPIGermplasmSynonyms brapiSynonym = new BrAPIGermplasmSynonyms(); From 4a569f8439cb9c3a0ad6ddd4a0bc81c4ab269583 Mon Sep 17 00:00:00 2001 From: Chris T Date: Thu, 21 Apr 2022 10:26:13 -0400 Subject: [PATCH 4/4] germplasm synonyms: fix tests --- .../brapps/importer/GermplasmTemplateMap.java | 17 +++++++++++++++++ .../germplasm_import/bad_breeding_methods.csv | 8 ++++---- .../circular_parent_dependencies.csv | 8 ++++---- .../germplasm_import/duplicate_db_names.csv | 14 +++++++------- .../duplicate_entry_numbers.csv | 10 +++++----- .../germplasm_import/empty_required_fields.csv | 8 ++++---- .../empty_values_required_fields.csv | 10 +++++----- .../germplasm_import/female_dbid_not_exist.csv | 8 ++++---- .../female_entry_number_not_exist.csv | 8 ++++---- .../files/germplasm_import/full_import.csv | 8 ++++---- .../germplasm_column_casing.csv | 4 ++-- .../male_dbid_no_female_success.csv | 8 ++++---- .../germplasm_import/male_dbid_not_exist.csv | 8 ++++---- .../male_entry_number_not_exist.csv | 8 ++++---- .../minimal_germplasm_import.csv | 8 ++++---- .../missing_optional_header.csv | 8 ++++---- .../missing_required_header.csv | 8 ++++---- .../no_female_parent_blank_pedigree.csv | 8 ++++---- .../nonnumerical_entry_numbers.csv | 10 +++++----- .../self_ref_parent_dependencies.csv | 8 ++++---- .../germplasm_import/some_entry_numbers.csv | 10 +++++----- 21 files changed, 102 insertions(+), 85 deletions(-) diff --git a/src/test/java/org/breedinginsight/brapps/importer/GermplasmTemplateMap.java b/src/test/java/org/breedinginsight/brapps/importer/GermplasmTemplateMap.java index 0ea12379d..9f44b6eb9 100644 --- a/src/test/java/org/breedinginsight/brapps/importer/GermplasmTemplateMap.java +++ b/src/test/java/org/breedinginsight/brapps/importer/GermplasmTemplateMap.java @@ -237,6 +237,13 @@ public void fullImportPreviewSuccess() { String referenceSource = reference.getAsJsonObject().get("referenceSource").getAsString(); assertTrue(referenceSource != BRAPI_REFERENCE_SOURCE, "Germplasm UUID was present, but should not be"); } + + // Synonyms + JsonArray synonyms = germplasm.getAsJsonArray("synonyms"); + for (JsonElement synonym: synonyms) { + String synonymName = synonym.getAsJsonObject().get("synonym").getAsString(); + assertNotNull(synonymName); + } } } @@ -299,6 +306,16 @@ public void fullImportCommitSuccess() { } } assertTrue(referenceFound, "Germplasm UUID reference not found"); + + // Synonyms + String[] splitGermplasmName = germplasm.get("germplasmName").getAsString().split(" "); + String scope = splitGermplasmName[splitGermplasmName.length - 1]; + JsonArray synonyms = germplasm.getAsJsonArray("synonyms"); + for (JsonElement synonym: synonyms) { + String synonymName = synonym.getAsJsonObject().get("synonym").getAsString(); + assertNotNull(synonymName); + assertTrue(synonymName.contains(scope), "Germplasm synonym was not properly scoped"); + } } // Check the germplasm list diff --git a/src/test/resources/files/germplasm_import/bad_breeding_methods.csv b/src/test/resources/files/germplasm_import/bad_breeding_methods.csv index aabc29892..eabba0bbc 100644 --- a/src/test/resources/files/germplasm_import/bad_breeding_methods.csv +++ b/src/test/resources/files/germplasm_import/bad_breeding_methods.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,ANE,Wild,,,,,, -Germplasm 2,BAD,Wild,,,,,, -Germplasm 3,BAD1,Wild,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,ANE,Wild,,,,,,, +Germplasm 2,BAD,Wild,,,,,,, +Germplasm 3,BAD1,Wild,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/circular_parent_dependencies.csv b/src/test/resources/files/germplasm_import/circular_parent_dependencies.csv index af760ae68..aca160536 100644 --- a/src/test/resources/files/germplasm_import/circular_parent_dependencies.csv +++ b/src/test/resources/files/germplasm_import/circular_parent_dependencies.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,1,2,3,1234 -Germplasm 2,BCR,Wild,,,2,1,2,5678 -Germplasm 3,BCR,Wild,,,3,2,3,9123 \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,1,2,3,1234, +Germplasm 2,BCR,Wild,,,2,1,2,5678, +Germplasm 3,BCR,Wild,,,3,2,3,9123, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/duplicate_db_names.csv b/src/test/resources/files/germplasm_import/duplicate_db_names.csv index 4de54f1d1..29d16a241 100644 --- a/src/test/resources/files/germplasm_import/duplicate_db_names.csv +++ b/src/test/resources/files/germplasm_import/duplicate_db_names.csv @@ -1,7 +1,7 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Full Germplasm 1,ANE,Wild,,,,,, -Full Germplasm 2,ANE,Wild,,,,,, -Full Germplasm 3,ANE,Wild,,,,,, -Unique Germplasm 1,ANE,Wild,,,,,, -File Germplasm 1,ANE,Wild,,,,,, -File Germplasm 1,ANE,Wild,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Full Germplasm 1,ANE,Wild,,,,,,, +Full Germplasm 2,ANE,Wild,,,,,,, +Full Germplasm 3,ANE,Wild,,,,,,, +Unique Germplasm 1,ANE,Wild,,,,,,, +File Germplasm 1,ANE,Wild,,,,,,, +File Germplasm 1,ANE,Wild,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/duplicate_entry_numbers.csv b/src/test/resources/files/germplasm_import/duplicate_entry_numbers.csv index 4476dad31..724731327 100644 --- a/src/test/resources/files/germplasm_import/duplicate_entry_numbers.csv +++ b/src/test/resources/files/germplasm_import/duplicate_entry_numbers.csv @@ -1,5 +1,5 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,1,,, -Germplasm 2,BCR,Wild,,,1,,, -Germplasm 3,BCR,Wild,,,3,,, -Germplasm 4,BCR,Wild,,,3,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,1,,,, +Germplasm 2,BCR,Wild,,,1,,,, +Germplasm 3,BCR,Wild,,,3,,,, +Germplasm 4,BCR,Wild,,,3,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/empty_required_fields.csv b/src/test/resources/files/germplasm_import/empty_required_fields.csv index 8561f2e04..0cb11e376 100644 --- a/src/test/resources/files/germplasm_import/empty_required_fields.csv +++ b/src/test/resources/files/germplasm_import/empty_required_fields.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,ANE,Wild,,,,,, -,ANE,Wild,,,,,, -Germplasm 3,ANE,,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,ANE,Wild,,,,,,, +,ANE,Wild,,,,,,, +Germplasm 3,ANE,,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/empty_values_required_fields.csv b/src/test/resources/files/germplasm_import/empty_values_required_fields.csv index 123f368ba..305016a6a 100644 --- a/src/test/resources/files/germplasm_import/empty_values_required_fields.csv +++ b/src/test/resources/files/germplasm_import/empty_values_required_fields.csv @@ -1,5 +1,5 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,,Wild,,,,,, -,,Wild,,,,,, -Germplasm 3,,,,,,,, -,,Wild,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,,Wild,,,,,,, +,,Wild,,,,,,, +Germplasm 3,,,,,,,,, +,,Wild,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/female_dbid_not_exist.csv b/src/test/resources/files/germplasm_import/female_dbid_not_exist.csv index 6d8e60342..bdfaba7df 100644 --- a/src/test/resources/files/germplasm_import/female_dbid_not_exist.csv +++ b/src/test/resources/files/germplasm_import/female_dbid_not_exist.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,1000,,,,, -Germplasm 2,BCR,Cultivated,1001,,,,, -Germplasm 3,BCR,Kinda Wild,1002,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,1000,,,,,, +Germplasm 2,BCR,Cultivated,1001,,,,,, +Germplasm 3,BCR,Kinda Wild,1002,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/female_entry_number_not_exist.csv b/src/test/resources/files/germplasm_import/female_entry_number_not_exist.csv index fb166ebd4..ad27c13f3 100644 --- a/src/test/resources/files/germplasm_import/female_entry_number_not_exist.csv +++ b/src/test/resources/files/germplasm_import/female_entry_number_not_exist.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,,1,, -Germplasm 2,BCR,Cultivated,,,,2,, -Germplasm 3,BCR,Kinda Wild,,,,3,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,,1,,, +Germplasm 2,BCR,Cultivated,,,,2,,, +Germplasm 3,BCR,Kinda Wild,,,,3,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/full_import.csv b/src/test/resources/files/germplasm_import/full_import.csv index 72869a216..88ce7645c 100644 --- a/src/test/resources/files/germplasm_import/full_import.csv +++ b/src/test/resources/files/germplasm_import/full_import.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Full Germplasm 1,ANE,Wild,1,2,2,,,1234 -Full Germplasm 2,ANE,Wild,2,,3,,,5678 -Full Germplasm 3,ANE,Wild,,,4,2,3,9123 \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Full Germplasm 1,ANE,Wild,1,2,2,,,1234,test1;test2 +Full Germplasm 2,ANE,Wild,2,,3,,,5678,test3;test2 +Full Germplasm 3,ANE,Wild,,,4,2,3,9123,test3;test4 \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/germplasm_column_casing.csv b/src/test/resources/files/germplasm_import/germplasm_column_casing.csv index af4c0376e..86c3b360f 100644 --- a/src/test/resources/files/germplasm_import/germplasm_column_casing.csv +++ b/src/test/resources/files/germplasm_import/germplasm_column_casing.csv @@ -1,2 +1,2 @@ -Name,BREEDING METHOD,SOURCE,fEmAlE pArEnT gId,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germ A,ANE,the shire,,,1,,,ABC-123 +Name,BREEDING METHOD,SOURCE,fEmAlE pArEnT gId,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germ A,ANE,the shire,,,1,,,ABC-123, diff --git a/src/test/resources/files/germplasm_import/male_dbid_no_female_success.csv b/src/test/resources/files/germplasm_import/male_dbid_no_female_success.csv index e84cbda98..37625d690 100644 --- a/src/test/resources/files/germplasm_import/male_dbid_no_female_success.csv +++ b/src/test/resources/files/germplasm_import/male_dbid_no_female_success.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,,Wild,,100,,,, -Germplasm 2,,Cultivated,,101,,,, -Germplasm 3,,Kinda Wild,,102,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,,Wild,,100,,,,, +Germplasm 2,,Cultivated,,101,,,,, +Germplasm 3,,Kinda Wild,,102,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/male_dbid_not_exist.csv b/src/test/resources/files/germplasm_import/male_dbid_not_exist.csv index 48bcdcec9..65ee23994 100644 --- a/src/test/resources/files/germplasm_import/male_dbid_not_exist.csv +++ b/src/test/resources/files/germplasm_import/male_dbid_not_exist.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,100,,,, -Germplasm 2,BCR,Cultivated,,101,,,, -Germplasm 3,BCR,Kinda Wild,,102,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,100,,,,, +Germplasm 2,BCR,Cultivated,,101,,,,, +Germplasm 3,BCR,Kinda Wild,,102,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/male_entry_number_not_exist.csv b/src/test/resources/files/germplasm_import/male_entry_number_not_exist.csv index bea7e79d1..d0ca41fe7 100644 --- a/src/test/resources/files/germplasm_import/male_entry_number_not_exist.csv +++ b/src/test/resources/files/germplasm_import/male_entry_number_not_exist.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,,,1, -Germplasm 2,BCR,Cultivated,,,,,2, -Germplasm 3,BCR,Kinda Wild,,,,,3, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,,,1,, +Germplasm 2,BCR,Cultivated,,,,,2,, +Germplasm 3,BCR,Kinda Wild,,,,,3,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/minimal_germplasm_import.csv b/src/test/resources/files/germplasm_import/minimal_germplasm_import.csv index 3b33a633c..122209184 100644 --- a/src/test/resources/files/germplasm_import/minimal_germplasm_import.csv +++ b/src/test/resources/files/germplasm_import/minimal_germplasm_import.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,,,, -Germplasm 2,BCR,Cultivated,,,,,, -Germplasm 3,BCR,Kinda Wild,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,,,,, +Germplasm 2,BCR,Cultivated,,,,,,, +Germplasm 3,BCR,Kinda Wild,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/missing_optional_header.csv b/src/test/resources/files/germplasm_import/missing_optional_header.csv index d62948749..8ae96df57 100644 --- a/src/test/resources/files/germplasm_import/missing_optional_header.csv +++ b/src/test/resources/files/germplasm_import/missing_optional_header.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,ANE,Wild,,,,, -Germplasm 2,ANE,Wild,,,,, -Germplasm 3,ANE,Wild,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,ANE,Wild,,,,,, +Germplasm 2,ANE,Wild,,,,,, +Germplasm 3,ANE,Wild,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/missing_required_header.csv b/src/test/resources/files/germplasm_import/missing_required_header.csv index 26853028b..b1e28abda 100644 --- a/src/test/resources/files/germplasm_import/missing_required_header.csv +++ b/src/test/resources/files/germplasm_import/missing_required_header.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,,,,,,, -Germplasm 2,,,,,,, -Germplasm 3,,,,,,, \ No newline at end of file +Name,Breeding Method,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,,,,,,,, +Germplasm 2,,,,,,,, +Germplasm 3,,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/no_female_parent_blank_pedigree.csv b/src/test/resources/files/germplasm_import/no_female_parent_blank_pedigree.csv index 65b7c331c..2e3ba2dbc 100644 --- a/src/test/resources/files/germplasm_import/no_female_parent_blank_pedigree.csv +++ b/src/test/resources/files/germplasm_import/no_female_parent_blank_pedigree.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,2,,,,1234 -Germplasm 2,BCR,Wild,,3,,,,5678 -Germplasm 3,BCR,Wild,,3,,,,9123 \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,2,,,,1234, +Germplasm 2,BCR,Wild,,3,,,,5678, +Germplasm 3,BCR,Wild,,3,,,,9123, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/nonnumerical_entry_numbers.csv b/src/test/resources/files/germplasm_import/nonnumerical_entry_numbers.csv index 92eff9857..8bc876d69 100644 --- a/src/test/resources/files/germplasm_import/nonnumerical_entry_numbers.csv +++ b/src/test/resources/files/germplasm_import/nonnumerical_entry_numbers.csv @@ -1,5 +1,5 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,,Wild,,,a,,, -Germplasm 2,,Wild,,,b,,, -Germplasm 3,,Wild,,,3,,, -Germplasm 4,,Wild,,,4,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,,Wild,,,a,,,, +Germplasm 2,,Wild,,,b,,,, +Germplasm 3,,Wild,,,3,,,, +Germplasm 4,,Wild,,,4,,,, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/self_ref_parent_dependencies.csv b/src/test/resources/files/germplasm_import/self_ref_parent_dependencies.csv index 7c24707e0..8f6e3de46 100644 --- a/src/test/resources/files/germplasm_import/self_ref_parent_dependencies.csv +++ b/src/test/resources/files/germplasm_import/self_ref_parent_dependencies.csv @@ -1,4 +1,4 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,1,1,1,1234 -Germplasm 2,BCR,Wild,,,2,2,2,5678 -Germplasm 3,BCR,Wild,,,3,3,3,9123 \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,1,1,1,1234, +Germplasm 2,BCR,Wild,,,2,2,2,5678, +Germplasm 3,BCR,Wild,,,3,3,3,9123, \ No newline at end of file diff --git a/src/test/resources/files/germplasm_import/some_entry_numbers.csv b/src/test/resources/files/germplasm_import/some_entry_numbers.csv index 39ac1fb1e..77373d9cf 100644 --- a/src/test/resources/files/germplasm_import/some_entry_numbers.csv +++ b/src/test/resources/files/germplasm_import/some_entry_numbers.csv @@ -1,5 +1,5 @@ -Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID -Germplasm 1,BCR,Wild,,,1,,, -Germplasm 2,BCR,Wild,,,,,, -Germplasm 3,BCR,Wild,,,3,,, -Germplasm 4,BCR,Wild,,,,,, \ No newline at end of file +Name,Breeding Method,Source,Female Parent GID,Male Parent GID,Entry No,Female Parent Entry No,Male Parent Entry No,External UID,Synonyms +Germplasm 1,BCR,Wild,,,1,,,, +Germplasm 2,BCR,Wild,,,,,,, +Germplasm 3,BCR,Wild,,,3,,,, +Germplasm 4,BCR,Wild,,,,,,, \ No newline at end of file