diff --git a/src/main/java/org/breedinginsight/brapps/importer/model/imports/TermTypeTranslator.java b/src/main/java/org/breedinginsight/brapps/importer/model/imports/TermTypeTranslator.java new file mode 100644 index 000000000..b53af17d7 --- /dev/null +++ b/src/main/java/org/breedinginsight/brapps/importer/model/imports/TermTypeTranslator.java @@ -0,0 +1,17 @@ +package org.breedinginsight.brapps.importer.model.imports; + +import org.breedinginsight.dao.db.enums.TermType; +import java.util.Map; +import java.util.Optional; + +public class TermTypeTranslator { + + private static final Map userDisplayToTermTypeMap = Map.of( + "Phenotype", TermType.PHENOTYPE, + "Germplasm Attribute", TermType.GERM_ATTRIBUTE, + "Germplasm Passport", TermType.GERM_PASSPORT); + + public static Optional getTermTypeFromUserDisplayName(String userDisplayName) { + return Optional.ofNullable(userDisplayToTermTypeMap.get(userDisplayName)); + } +} diff --git a/src/main/java/org/breedinginsight/model/Trait.java b/src/main/java/org/breedinginsight/model/Trait.java index 7ad7cc9e1..04611a5df 100644 --- a/src/main/java/org/breedinginsight/model/Trait.java +++ b/src/main/java/org/breedinginsight/model/Trait.java @@ -91,6 +91,7 @@ public Trait(TraitEntity traitEntity) { this.setUpdatedAt(traitEntity.getUpdatedAt()); this.setUpdatedBy(traitEntity.getUpdatedBy()); this.setActive(traitEntity.getActive()); + this.setTermType(traitEntity.getTermType()); } public static Trait parseSqlRecord(Record record) { @@ -106,6 +107,7 @@ public static Trait parseSqlRecord(Record record) { .updatedAt(record.getValue(TRAIT.UPDATED_AT)) .updatedBy(record.getValue(TRAIT.UPDATED_BY)) .active(record.getValue(TRAIT.ACTIVE)) + .termType(record.getValue(TRAIT.TERM_TYPE)) .build(); } diff --git a/src/main/java/org/breedinginsight/services/TraitService.java b/src/main/java/org/breedinginsight/services/TraitService.java index 76f921587..ff872791f 100644 --- a/src/main/java/org/breedinginsight/services/TraitService.java +++ b/src/main/java/org/breedinginsight/services/TraitService.java @@ -217,6 +217,7 @@ public List createTraits(UUID programId, List traits, Authenticate .createdBy(actingUser.getId()) .updatedBy(actingUser.getId()) .active(true) + .termType(trait.getTermType()) .build(); traitDAO.insert(jooqTrait); trait.setId(jooqTrait.getId()); @@ -416,6 +417,7 @@ public List updateTraits(UUID programId, List traits, Authenticate existingTraitEntity.setObservationVariableName(updatedTrait.getObservationVariableName()); existingTraitEntity.setProgramObservationLevelId(updatedTrait.getProgramObservationLevel().getId()); existingTraitEntity.setUpdatedBy(user.getId()); + existingTraitEntity.setTermType(updatedTrait.getTermType()); traitDAO.update(existingTraitEntity); // Update in brapi diff --git a/src/main/java/org/breedinginsight/services/parsers/ParsingExceptionType.java b/src/main/java/org/breedinginsight/services/parsers/ParsingExceptionType.java index 96a84e294..d7d33ae03 100644 --- a/src/main/java/org/breedinginsight/services/parsers/ParsingExceptionType.java +++ b/src/main/java/org/breedinginsight/services/parsers/ParsingExceptionType.java @@ -32,7 +32,8 @@ public enum ParsingExceptionType { INVALID_SCALE_DECIMAL_PLACES("Invalid scale decimal places value"), INVALID_SCALE_LOWER_LIMIT("Invalid scale lower limit value. Value must be numeric and be a whole number."), INVALID_SCALE_UPPER_LIMIT("Invalid scale upper limit value. Value must be numeric and be a whole number."), - INVALID_SCALE_CATEGORIES("Invalid scale categories format"); + INVALID_SCALE_CATEGORIES("Invalid scale categories format"), + INVALID_TERM_TYPE("Invalid term type"); private String value; diff --git a/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileColumns.java b/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileColumns.java index e7c2b51a7..a9d7d1e45 100644 --- a/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileColumns.java +++ b/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileColumns.java @@ -38,7 +38,9 @@ public enum TraitFileColumns { SCALE_UPPER_LIMIT("Scale upper limit"), SCALE_CATEGORIES("Scale categories"), TAGS("Tags"), - FULL_NAME("Full name"); + FULL_NAME("Full name"), + TERM_TYPE("Term Type"); + private String value; diff --git a/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileParser.java b/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileParser.java index 76d8c0e97..906115f3d 100644 --- a/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileParser.java +++ b/src/main/java/org/breedinginsight/services/parsers/trait/TraitFileParser.java @@ -16,18 +16,20 @@ */ package org.breedinginsight.services.parsers.trait; -import io.micronaut.core.util.StringUtils; import io.micronaut.http.HttpStatus; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVRecord; +import org.apache.commons.text.WordUtils; import org.apache.poi.EncryptedDocumentException; import org.apache.poi.ss.usermodel.*; import org.brapi.v2.model.pheno.BrAPIScaleValidValuesCategories; import org.breedinginsight.api.model.v1.response.ValidationError; import org.breedinginsight.api.model.v1.response.ValidationErrors; +import org.breedinginsight.brapps.importer.model.imports.TermTypeTranslator; import org.breedinginsight.dao.db.enums.DataType; +import org.breedinginsight.dao.db.enums.TermType; import org.breedinginsight.model.*; import org.breedinginsight.services.exceptions.UnprocessableEntityException; import org.breedinginsight.services.exceptions.ValidatorException; @@ -250,6 +252,21 @@ private List excelRecordsToTraits(List records) throws Valid String tagsString = parseExcelValueAsString(record, TraitFileColumns.TAGS); List traitTags = parseListValue(tagsString); + //Set to backend value for user input term type, if none, set to default + TermType termType = TermType.PHENOTYPE; + + String termTypeVal = parseExcelValueAsString(record, TraitFileColumns.TERM_TYPE); + if ((!Objects.isNull(termTypeVal)) && (!termTypeVal.isBlank())) { + Optional termTypeOpt = TermTypeTranslator.getTermTypeFromUserDisplayName(WordUtils.capitalizeFully(termTypeVal)); + if (termTypeOpt.isPresent()) { + termType = termTypeOpt.get(); + } else { + ValidationError error = new ValidationError(TraitFileColumns.TERM_TYPE.toString(), + ParsingExceptionType.INVALID_TERM_TYPE.toString(), HttpStatus.UNPROCESSABLE_ENTITY); + validationErrors.addError(traitValidatorError.getRowNumber(i), error); + } + } + Trait trait = Trait.builder() .observationVariableName(parseExcelValueAsString(record, TraitFileColumns.NAME)) .traitDescription(parseExcelValueAsString(record, TraitFileColumns.DESCRIPTION)) @@ -263,6 +280,7 @@ private List excelRecordsToTraits(List records) throws Valid .method(method) .scale(scale) .tags(traitTags) + .termType(termType) .build(); traits.add(trait); diff --git a/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java b/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java index 3afac5e67..ac8cccc22 100644 --- a/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java +++ b/src/main/java/org/breedinginsight/utilities/response/mappers/TraitQueryMapper.java @@ -73,7 +73,8 @@ public TraitQueryMapper() { Map.entry("updatedByUserId", trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getId() : null), Map.entry("updatedByUserName", - trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getName() : null) + trait -> trait.getUpdatedByUser() != null ? trait.getUpdatedByUser().getName() : null), + Map.entry("termType", Trait::getTermType) ); } diff --git a/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql b/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql new file mode 100644 index 000000000..872df67e7 --- /dev/null +++ b/src/main/resources/db/migration/V1.0.10__add_onto_term_type.sql @@ -0,0 +1,25 @@ +/* + * 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. + */ + +CREATE TYPE "term_type" AS ENUM ( + 'PHENOTYPE', + 'GERM_ATTRIBUTE', + 'GERM_PASSPORT' +); + +ALTER TABLE trait ADD COLUMN term_type term_type NOT NULL DEFAULT 'PHENOTYPE'; +UPDATE trait SET term_type='PHENOTYPE'; \ No newline at end of file diff --git a/src/test/java/org/breedinginsight/api/v1/controller/TraitUploadControllerIntegrationTest.java b/src/test/java/org/breedinginsight/api/v1/controller/TraitUploadControllerIntegrationTest.java index 1052a969c..4763b7af8 100644 --- a/src/test/java/org/breedinginsight/api/v1/controller/TraitUploadControllerIntegrationTest.java +++ b/src/test/java/org/breedinginsight/api/v1/controller/TraitUploadControllerIntegrationTest.java @@ -38,6 +38,7 @@ import org.breedinginsight.api.model.v1.request.query.SearchRequest; import org.breedinginsight.api.v1.controller.metadata.SortOrder; import org.breedinginsight.dao.db.enums.DataType; +import org.breedinginsight.dao.db.enums.TermType; import org.breedinginsight.dao.db.tables.daos.ProgramDao; import org.breedinginsight.dao.db.tables.pojos.BiUserEntity; import org.breedinginsight.dao.db.tables.pojos.ProgramEntity; @@ -570,6 +571,8 @@ private void checkValidTraitUpload(JsonObject traitUpload) { assertEquals("Leaf", observationLevel.get("name").getAsString(), "wrong level name"); assertEquals(true, trait.get("active").getAsBoolean(), "wrong status"); + assertEquals(TermType.GERM_PASSPORT.toString(), trait.get("termType").getAsString()); + // TODO: trait lists JsonObject method = trait.get("method").getAsJsonObject(); diff --git a/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java b/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java index db2bcab8e..06f8a9e85 100644 --- a/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java +++ b/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java @@ -22,6 +22,7 @@ import org.breedinginsight.api.model.v1.response.ValidationError; import org.breedinginsight.api.model.v1.response.ValidationErrors; import org.breedinginsight.dao.db.enums.DataType; +import org.breedinginsight.dao.db.enums.TermType; import org.breedinginsight.model.Method; import org.breedinginsight.model.Scale; import org.breedinginsight.model.Trait; @@ -182,6 +183,7 @@ void parseCsvConvertToTraitsError() { expectedErrors3.put(TraitFileColumns.SCALE_DECIMAL_PLACES.toString(), ParsingExceptionType.INVALID_SCALE_DECIMAL_PLACES); expectedErrors3.put(TraitFileColumns.SCALE_LOWER_LIMIT.toString(), ParsingExceptionType.INVALID_SCALE_LOWER_LIMIT); expectedErrors3.put(TraitFileColumns.SCALE_UPPER_LIMIT.toString(), ParsingExceptionType.INVALID_SCALE_UPPER_LIMIT); + expectedErrors3.put(TraitFileColumns.TERM_TYPE.toString(), ParsingExceptionType.INVALID_TERM_TYPE); checkParsingExceptionErrors(rowErrors.getRowErrors().get(0), expectedErrors1); checkParsingExceptionErrors(rowErrors.getRowErrors().get(1), expectedErrors2); @@ -286,6 +288,7 @@ private void assertTestTraitEquals(Trait trait) { assertEquals("leaf", trait.getEntity(), "wrong entity"); assertEquals("powdery mildew severity", trait.getAttribute(), "wrong attribute"); assertEquals(true, trait.getActive(), "wrong status"); + assertEquals(TermType.GERM_PASSPORT, trait.getTermType(), "wrong term type"); // TODO: trait lists Method method = trait.getMethod(); assertEquals("Powdery Mildew severity, leaf", method.getDescription(), "wrong method description"); diff --git a/src/test/resources/files/columns_no_data.csv b/src/test/resources/files/columns_no_data.csv index 279144ebc..64504fa6f 100644 --- a/src/test/resources/files/columns_no_data.csv +++ b/src/test/resources/files/columns_no_data.csv @@ -1 +1 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type \ No newline at end of file diff --git a/src/test/resources/files/data_duplicate_headers.csv b/src/test/resources/files/data_duplicate_headers.csv index 603f62657..a323c0a3c 100644 --- a/src/test/resources/files/data_duplicate_headers.csv +++ b/src/test/resources/files/data_duplicate_headers.csv @@ -1,2 +1,2 @@ -Name,ONTOLOgY TErM NaME,Trait Abbreviations,trAit synoNyms,trait Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,ScALe Upper limit,Scale CAtegories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",Plant,active,mildew,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation",Observed severity of Powdery Mildew on leaves,Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +Name,ONTOLOgY TErM NaME,Trait Abbreviations,trAit synoNyms,trait Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,ScALe Upper limit,Scale CAtegories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",Plant,active,mildew,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation",Observed severity of Powdery Mildew on leaves,Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/data_duplicate_method_name.csv b/src/test/resources/files/data_duplicate_method_name.csv index a4305fcef..0eee208d4 100644 --- a/src/test/resources/files/data_duplicate_method_name.csv +++ b/src/test/resources/files/data_duplicate_method_name.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ",blah,"Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ",blah,"Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_min_max_swap.csv b/src/test/resources/files/data_min_max_swap.csv index 27e131da9..5237d1131 100644 --- a/src/test/resources/files/data_min_max_swap.csv +++ b/src/test/resources/files/data_min_max_swap.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,9999,2.11,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,9999,2.11,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/data_mismatched_cases.csv b/src/test/resources/files/data_mismatched_cases.csv index d86051cd1..4e31b2eb0 100644 --- a/src/test/resources/files/data_mismatched_cases.csv +++ b/src/test/resources/files/data_mismatched_cases.csv @@ -1,2 +1,2 @@ -name,synoNyms,deScription,Trait entity,Trait attribute,StaTus,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,ScALe Upper limit,Scale CAtegories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +name,synoNyms,deScription,Trait entity,Trait attribute,StaTus,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,ScALe Upper limit,Scale CAtegories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,,Germplasm PASSPORT \ No newline at end of file diff --git a/src/test/resources/files/data_multiple_rows.csv b/src/test/resources/files/data_multiple_rows.csv index 67faea02b..636c6e376 100644 --- a/src/test/resources/files/data_multiple_rows.csv +++ b/src/test/resources/files/data_multiple_rows.csv @@ -1,4 +1,4 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_leaf,Powdery Mildew Leaf; Powdery Mildew Severity Leaf,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Leaf -PM_bud,Powdery Mildew Bud; Powdery Mildew Severity Bud,"Powdery mildew (PM) due to Erysiphe necator severity in field, bud only ",bud,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, bud",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Bud -PM_stem,Powdery Mildew Stem; Powdery Mildew Severity Stem,"Powdery mildew (PM) due to Erysiphe necator severity in field, stem only ",stem,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, stem",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Stem \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_leaf,Powdery Mildew Leaf; Powdery Mildew Severity Leaf,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Leaf,Germplasm Attribute +PM_bud,Powdery Mildew Bud; Powdery Mildew Severity Bud,"Powdery mildew (PM) due to Erysiphe necator severity in field, bud only ",bud,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, bud",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Bud, +PM_stem,Powdery Mildew Stem; Powdery Mildew Severity Stem,"Powdery mildew (PM) due to Erysiphe necator severity in field, stem only ",stem,powdery mildew deverity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, stem",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,,,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity Stem,phenotype \ No newline at end of file diff --git a/src/test/resources/files/data_multiple_rows.xls b/src/test/resources/files/data_multiple_rows.xls index 36f6ccf21..33e659011 100644 Binary files a/src/test/resources/files/data_multiple_rows.xls and b/src/test/resources/files/data_multiple_rows.xls differ diff --git a/src/test/resources/files/data_multiple_rows.xlsx b/src/test/resources/files/data_multiple_rows.xlsx index 5148ab480..c1de09872 100644 Binary files a/src/test/resources/files/data_multiple_rows.xlsx and b/src/test/resources/files/data_multiple_rows.xlsx differ diff --git a/src/test/resources/files/data_one_row.csv b/src/test/resources/files/data_one_row.csv index 26170ce13..53e09c795 100644 --- a/src/test/resources/files/data_one_row.csv +++ b/src/test/resources/files/data_one_row.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity,germplasm passport \ No newline at end of file diff --git a/src/test/resources/files/data_one_row.xls b/src/test/resources/files/data_one_row.xls index 25c0ec588..c08d525b4 100644 Binary files a/src/test/resources/files/data_one_row.xls and b/src/test/resources/files/data_one_row.xls differ diff --git a/src/test/resources/files/data_one_row.xlsx b/src/test/resources/files/data_one_row.xlsx index fdff93092..57a616386 100644 Binary files a/src/test/resources/files/data_one_row.xlsx and b/src/test/resources/files/data_one_row.xlsx differ diff --git a/src/test/resources/files/data_one_row_blank_active_value.csv b/src/test/resources/files/data_one_row_blank_active_value.csv index bcbc35aca..5c6021a72 100644 --- a/src/test/resources/files/data_one_row_blank_active_value.csv +++ b/src/test/resources/files/data_one_row_blank_active_value.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",Leaf,powdery mildew severity,,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",Leaf,powdery mildew severity,,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_blank_scale_class.csv b/src/test/resources/files/data_one_row_blank_scale_class.csv index 12976e931..10274194b 100644 --- a/src/test/resources/files/data_one_row_blank_scale_class.csv +++ b/src/test/resources/files/data_one_row_blank_scale_class.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_computation.csv b/src/test/resources/files/data_one_row_computation.csv index acf076b15..99d968aed 100644 --- a/src/test/resources/files/data_one_row_computation.csv +++ b/src/test/resources/files/data_one_row_computation.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Computation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Computation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_empty_active_value.xls b/src/test/resources/files/data_one_row_empty_active_value.xls index c81e2778d..a799cd957 100644 Binary files a/src/test/resources/files/data_one_row_empty_active_value.xls and b/src/test/resources/files/data_one_row_empty_active_value.xls differ diff --git a/src/test/resources/files/data_one_row_empty_formula_headers.xls b/src/test/resources/files/data_one_row_empty_formula_headers.xls index 27a0b8c0f..c52f828ad 100644 Binary files a/src/test/resources/files/data_one_row_empty_formula_headers.xls and b/src/test/resources/files/data_one_row_empty_formula_headers.xls differ diff --git a/src/test/resources/files/data_one_row_empty_headers.csv b/src/test/resources/files/data_one_row_empty_headers.csv index 89d928665..212c8db5d 100644 --- a/src/test/resources/files/data_one_row_empty_headers.csv +++ b/src/test/resources/files/data_one_row_empty_headers.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_empty_headers.xls b/src/test/resources/files/data_one_row_empty_headers.xls index 6f4cc8c68..ec41889c2 100644 Binary files a/src/test/resources/files/data_one_row_empty_headers.xls and b/src/test/resources/files/data_one_row_empty_headers.xls differ diff --git a/src/test/resources/files/data_one_row_invalid_active_value.csv b/src/test/resources/files/data_one_row_invalid_active_value.csv index 9024500f3..eb181ba35 100644 --- a/src/test/resources/files/data_one_row_invalid_active_value.csv +++ b/src/test/resources/files/data_one_row_invalid_active_value.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powder mildew severity,blah,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powder mildew severity,blah,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_invalid_scale_class.csv b/src/test/resources/files/data_one_row_invalid_scale_class.csv index 33918da52..ba37dcf37 100644 --- a/src/test/resources/files/data_one_row_invalid_scale_class.csv +++ b/src/test/resources/files/data_one_row_invalid_scale_class.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,blah,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,blah,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_scale_categories_blank.csv b/src/test/resources/files/data_one_row_scale_categories_blank.csv index 0376d239c..b4b0906a8 100644 --- a/src/test/resources/files/data_one_row_scale_categories_blank.csv +++ b/src/test/resources/files/data_one_row_scale_categories_blank.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,,, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_scale_decimal_blank.csv b/src/test/resources/files/data_one_row_scale_decimal_blank.csv index 29a5d3461..585d81ba2 100644 --- a/src/test/resources/files/data_one_row_scale_decimal_blank.csv +++ b/src/test/resources/files/data_one_row_scale_decimal_blank.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_scale_decimal_invalid.csv b/src/test/resources/files/data_one_row_scale_decimal_invalid.csv index a01e82925..a7d774994 100644 --- a/src/test/resources/files/data_one_row_scale_decimal_invalid.csv +++ b/src/test/resources/files/data_one_row_scale_decimal_invalid.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2t,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2t,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file diff --git a/src/test/resources/files/data_one_row_trait_level_not_exist.csv b/src/test/resources/files/data_one_row_trait_level_not_exist.csv index f0b5b3dcd..edcbb3a3f 100644 --- a/src/test/resources/files/data_one_row_trait_level_not_exist.csv +++ b/src/test/resources/files/data_one_row_trait_level_not_exist.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",bud,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",bud,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Powdery Mildew Severity,Phenotype \ No newline at end of file diff --git a/src/test/resources/files/duplicatesInFile.csv b/src/test/resources/files/duplicatesInFile.csv index c41d025b9..55e7b9605 100644 --- a/src/test/resources/files/duplicatesInFile.csv +++ b/src/test/resources/files/duplicatesInFile.csv @@ -1,3 +1,3 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/empty_then_2_rows.xlsx b/src/test/resources/files/empty_then_2_rows.xlsx index ab3cd9f7a..7917eb89c 100644 Binary files a/src/test/resources/files/empty_then_2_rows.xlsx and b/src/test/resources/files/empty_then_2_rows.xlsx differ diff --git a/src/test/resources/files/missing_categories.csv b/src/test/resources/files/missing_categories.csv index f30bec176..354223dbf 100644 --- a/src/test/resources/files/missing_categories.csv +++ b/src/test/resources/files/missing_categories.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,,1-4 Parlier field response score,Ordinal,2,2,9999,,, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,,1-4 Parlier field response score,Ordinal,2,2,9999,,,, \ No newline at end of file diff --git a/src/test/resources/files/missing_category_label_nominal.csv b/src/test/resources/files/missing_category_label_nominal.csv index f93ef99f9..7998bf97b 100644 --- a/src/test/resources/files/missing_category_label_nominal.csv +++ b/src/test/resources/files/missing_category_label_nominal.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Nominal,2,2,9999,"No visible infection; Very few, small colonies; < 50% coverage; >50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Nominal,2,2,9999,"No visible infection; Very few, small colonies; < 50% coverage; >50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/missing_category_label_ordinal.csv b/src/test/resources/files/missing_category_label_ordinal.csv index 7d5711f58..df8c376c7 100644 --- a/src/test/resources/files/missing_category_label_ordinal.csv +++ b/src/test/resources/files/missing_category_label_ordinal.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"No visible infection; Very few, small colonies; < 50% coverage; >50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"No visible infection; Very few, small colonies; < 50% coverage; >50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/missing_column.csv b/src/test/resources/files/missing_column.csv index acd8e2872..1d03024aa 100644 --- a/src/test/resources/files/missing_column.csv +++ b/src/test/resources/files/missing_column.csv @@ -1 +1 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type \ No newline at end of file diff --git a/src/test/resources/files/missing_formula.csv b/src/test/resources/files/missing_formula.csv index 1ae9c8608..16b6613d7 100644 --- a/src/test/resources/files/missing_formula.csv +++ b/src/test/resources/files/missing_formula.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",computation,,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",, \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +PM_Leaf,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",computation,,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,, \ No newline at end of file diff --git a/src/test/resources/files/missing_scale_class.xlsx b/src/test/resources/files/missing_scale_class.xlsx index b1ab129b2..78bb4c20e 100644 Binary files a/src/test/resources/files/missing_scale_class.xlsx and b/src/test/resources/files/missing_scale_class.xlsx differ diff --git a/src/test/resources/files/missing_scale_unit.xlsx b/src/test/resources/files/missing_scale_unit.xlsx index 732f8d5b4..466b531c0 100644 Binary files a/src/test/resources/files/missing_scale_unit.xlsx and b/src/test/resources/files/missing_scale_unit.xlsx differ diff --git a/src/test/resources/files/missing_trait_entity.xlsx b/src/test/resources/files/missing_trait_entity.xlsx index c076be539..e5ef7f4a8 100644 Binary files a/src/test/resources/files/missing_trait_entity.xlsx and b/src/test/resources/files/missing_trait_entity.xlsx differ diff --git a/src/test/resources/files/missing_trait_name_with_data.csv b/src/test/resources/files/missing_trait_name_with_data.csv index 3f651a41f..c7de3a3f2 100644 --- a/src/test/resources/files/missing_trait_name_with_data.csv +++ b/src/test/resources/files/missing_trait_name_with_data.csv @@ -1,2 +1,2 @@ -Trait abbreviations,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage", \ No newline at end of file +Trait abbreviations,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,active,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinal,2,2,9999,"1=No visible infection; 2=Very few, small colonies; 3=< 50% coverage; 4=>50% coverage",,Phenotype \ No newline at end of file diff --git a/src/test/resources/files/multiple_rows_parsing_errors.csv b/src/test/resources/files/multiple_rows_parsing_errors.csv index 0d595c994..a46e0b3bf 100644 --- a/src/test/resources/files/multiple_rows_parsing_errors.csv +++ b/src/test/resources/files/multiple_rows_parsing_errors.csv @@ -1,4 +1,4 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name -PM_Leaf,Powdery Mildew Leaf Powdery Mildew Severity Leaf,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,TRUE,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinl,,,,"1->No visible infection; 2->Very few, small colonies; 3->50% coverage; 4->50% coverage", -PM_Bud,Powdery Mildew Bud: Powdery Mildew Severity Bud,"Powdery mildew (PM) due to Erysiphe necator severity in field, bud only ",bud,powdery mildew severity,FALSE,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, bud",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Txt,,,,"1=No visible infection: 2=Very few, small colonies: 3=< 50% coverage: 4=>50% coverage", -PM_Stem,Powdery Mildew Stem. Powdery Mildew Severity Stem,"Powdery mildew (PM) due to Erysiphe necator severity in field, stem only ",stem,powdery mildew severity,actv,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, stem",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Nmber,Four,One,Ten,"No visible infection; Very few, small colonies; 50% coverage; 50% coverage", \ No newline at end of file +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Tags,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Full Name,Term Type +PM_Leaf,Powdery Mildew Leaf Powdery Mildew Severity Leaf,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powdery mildew severity,TRUE,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, leaf",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Ordinl,,,,"1->No visible infection; 2->Very few, small colonies; 3->50% coverage; 4->50% coverage",, +PM_Bud,Powdery Mildew Bud: Powdery Mildew Severity Bud,"Powdery mildew (PM) due to Erysiphe necator severity in field, bud only ",bud,powdery mildew severity,FALSE,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, bud",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Txt,,,,"1=No visible infection: 2=Very few, small colonies: 3=< 50% coverage: 4=>50% coverage",, +PM_Stem,Powdery Mildew Stem. Powdery Mildew Severity Stem,"Powdery mildew (PM) due to Erysiphe necator severity in field, stem only ",stem,powdery mildew severity,actv,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation ","Powdery Mildew severity, stem",Estimation,a^2 + b^2 = c^2,1-4 Parlier field response score,Nmber,Four,One,Ten,"No visible infection; Very few, small colonies; 50% coverage; 50% coverage",,NotATermType \ No newline at end of file diff --git a/src/test/resources/files/ontology/data_category_label_nominal_trait.xls b/src/test/resources/files/ontology/data_category_label_nominal_trait.xls index 0d70c47c4..f938385e7 100644 Binary files a/src/test/resources/files/ontology/data_category_label_nominal_trait.xls and b/src/test/resources/files/ontology/data_category_label_nominal_trait.xls differ diff --git a/src/test/resources/files/ontology/data_nominal_missing_categories.xlsx b/src/test/resources/files/ontology/data_nominal_missing_categories.xlsx index 3f8f85a12..dee1c7dc2 100644 Binary files a/src/test/resources/files/ontology/data_nominal_missing_categories.xlsx and b/src/test/resources/files/ontology/data_nominal_missing_categories.xlsx differ diff --git a/src/test/resources/files/ontology/data_ordinal_missing_categories.xlsx b/src/test/resources/files/ontology/data_ordinal_missing_categories.xlsx index 85ebc0007..7214e33b9 100644 Binary files a/src/test/resources/files/ontology/data_ordinal_missing_categories.xlsx and b/src/test/resources/files/ontology/data_ordinal_missing_categories.xlsx differ diff --git a/src/test/resources/files/parsing_exceptions.csv b/src/test/resources/files/parsing_exceptions.csv index 8a17c0484..83f273e30 100644 --- a/src/test/resources/files/parsing_exceptions.csv +++ b/src/test/resources/files/parsing_exceptions.csv @@ -1,2 +1,2 @@ -Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name -,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powder mildew severity,inactive,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",bad,a^2 + b^2 = c^2,1-4 Parlier field response score,paragraph,two,one,nine-nine-nine-nine,"1=No visible infection... 2=Very few, small colonies... 3=< 50% coverage... 4=>50% coverage",, +Name,Synonyms,Description,Trait entity,Trait attribute,Status,Trait lists,Method name,Method description,Method class,Method formula,Units,Scale class,Scale decimal places,Scale lower limit,Scale upper limit,Scale categories,Tags,Full Name,Term Type +,Powdery Mildew; Powdery Mildew Severity,"Powdery mildew (PM) due to Erysiphe necator severity in field, leaves only ",leaf,powder mildew severity,inactive,Nursery evaluation; Greenhouse evaluation; Trial evaluation,"Powdery Mildew severity, leaves - Estimation","Powdery Mildew severity, leaf",bad,a^2 + b^2 = c^2,1-4 Parlier field response score,paragraph,two,one,nine-nine-nine-nine,"1=No visible infection... 2=Very few, small colonies... 3=< 50% coverage... 4=>50% coverage",,,