update mirri folder

This commit is contained in:
2023-07-24 12:10:38 +01:00
parent f93ba27f81
commit 7338930c72
11 changed files with 830 additions and 362 deletions
+4
View File
@@ -62,6 +62,10 @@ class Entity():
def GID(self) -> str:
return 'Genomic Information'
def VRS(self) -> str:
return 'Version'
def OTD(self) -> str:
return 'Ontobiotope'
+200 -67
View File
@@ -92,6 +92,9 @@ class ErrorMessage():
def EFS08(self):
return "The 'Genomic information' sheet is missing. Please check the provided excel template."
def EFS09(self):
return "The 'Version' sheet is missing. Please check the provided excel template."
"""
Growth Media Error Codes
@@ -147,26 +150,26 @@ class ErrorMessage():
def LID03(self):
return "The 'Full reference' column is a mandatory field in the Literature sheet. The column can not be empty."
def LID04(self):
return f"The 'Full reference' for literature with ID {self.pk} is missing."
#def LID04(self):
#return f"The 'Full reference' for literature with ID {self.pk} is missing."
def LID05(self):
return "The 'Authors' column is a mandatory field in the Literature sheet. The column can not be empty."
def LID06(self):
return f"The 'Authors' for literature with ID {self.pk} is missing."
#def LID06(self):
#return f"The 'Authors' for literature with ID {self.pk} is missing."
def LID07(self):
return "The 'Title' column is a mandatory field in the Literature sheet. The column can not be empty."
def LID08(self):
return f"The 'Title' for literature with ID {self.pk} is missing."
#def LID08(self):
#return f"The 'Title' for literature with ID {self.pk} is missing."
def LID09(self):
return "The 'Journal' column is a mandatory field in the Literature sheet. The column can not be empty."
def LID10(self):
return f"The 'Journal' for literature with ID {self.pk} is missing."
#def LID10(self):
#return f"The 'Journal' for literature with ID {self.pk} is missing."
def LID11(self):
return "The 'Year' column is a mandatory field in the Literature sheet. The column can not be empty."
@@ -187,167 +190,191 @@ class ErrorMessage():
return f"The 'First page' for literature with ID {self.pk} is missing."
def LID17(self):
msg = 'If journal; Title, Authors, journal, year and first page are required'
msg += 'If Book; Book Title, Authors, Year, Editors, Publishers'
return msg
return( f"There are four types of ways to fill in the 'Literature' sheet.",
"1st- Columns 'ID' and 'DOI' must be obrigatory.",
"2nd-Columns 'ID' and 'PMID' are obrigatory.",
"3rd-Columns 'ID' and 'Full reference' are obrigatory.",
"In the alternative of these three types of forms not being filled in, we have:",
"4th-Columns 'ID', 'Authors', 'Title', 'Journal', 'Year', 'Volume', 'First page'.")
def LID18(self):
return "The 'PMID' column is a mandatory field. The column can not be empty."
#def LID19(self):
#return f"PMID for literature with ID {self.pk} is missing."
def LID20(self):
return "The 'DOI' column is a mandatory field. The column can not be empty."
#def LID21(self):
#return f"DOI for literature with ID {self.pk} is missing."
"""
Strains Error Codes
"""
def STD01(self):
return "The 'Accession number' column is a mandatory field in the Strains sheet."
return "The 'accessionNumber' column is a mandatory field in the Strains sheet."
def STD02(self):
return "The 'Accession number' column is empty or has missing values."
return "The 'accessionNumber' column is empty or has missing values."
def STD03(self):
return f"The 'Accesion number' must be unique. The '{self.value}' is repeated."
return f"The 'accessionNumber' must be unique. The '{self.value}' is repeated."
def STD04(self):
return (f"The 'Accession number' {self.pk} is not according to the specification."
return (f"The 'accessionNumber' {self.pk} is not according to the specification."
" The value must be of the format '<Sequence of characters> <sequence of characters>'.")
def STD05(self):
return f"The 'Restriction on use' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'useRestrictions' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD06(self):
return f"The 'Restriction on use' for strain with Accession Number {self.pk} is missing."
return f"The 'useRestrictions' for strain with accessionNumber {self.pk} is missing."
def STD07(self):
return (f"The 'Restriction on use' for strain with Accession Number {self.pk} is not according to the specification."
return (f"The 'useRestrictions' for strain with accessionNumber {self.pk} is not according to the specification."
f" Your value is {self.value} and the accepted values are 1, 2, 3.")
def STD08(self):
return f"The 'Nagoya protocol restrictions and compliance conditions' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'nagoyaConditions' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD09(self):
return f"The 'Nagoya protocol restrictions and compliance conditions' for strain with Accession Number {self.pk} is missing."
return f"The 'nagoyaConditions' for strain with accessionNumber {self.pk} is missing."
def STD10(self):
return (f"The 'Nagoya protocol restrictions and compliance conditions' for strain with Accession Number {self.pk} is not according to the specification."
return (f"The 'nagoyaConditions' for strain with accessionNumber {self.pk} is not according to the specification."
f" Your value is {self.value} and the accepted values are 1, 2, 3.")
def STD11(self):
return (f"The 'Strain from a registered collection' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'registeredCollection' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2, 3.")
def STD12(self):
return "The 'Risk group' column is a mandatory field in the Strains Sheet. The column can not be empty."
return "The 'riskGroup' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD13(self):
return f"The 'Risk group' for strain with Accession Number {self.pk} is missing."
return f"The 'riskGroup' for strain with accessionNumber {self.pk} is missing."
def STD14(self):
return (f"The 'Risk group' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'riskGroup' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2, 3, 4.")
def STD15(self):
return (f"The 'Dual use' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'dualUse' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2.")
def STD16(self):
return (f"The “Quarantine in europe” for strain with Accession Number {self.pk} is not according to specification."
return (f"The “euQuarantine” for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2.")
def STD17(self):
return f"The 'Organism type' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'organismType' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD18(self):
return f"The 'Organism type' for strain with Accession Number {self.pk} is missing."
return f"The 'organismType' for strain with accessionNumber {self.pk} is missing."
def STD19(self):
return (f"The 'Organism type' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'organismType' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 'Algae', 'Archaea', 'Bacteria', 'Cyanobacteria', "
"'Filamentous Fungi', 'Phage', 'Plasmid', 'Virus', 'Yeast', 1, 2, 3, 4, 5, 6, 7, 8, 9.")
def STD20(self):
return f"The 'Taxon name' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'speciesName' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD21(self):
return f"The 'Taxon name' for strain with Accession Number {self.pk} is missing."
return f"The 'speciesName' for strain with accessionNumber {self.pk} is missing."
def STD22(self):
return f"The 'Taxon name' for strain with Accession Number {self.pk} is incorrect."
return f"The 'speciesName' for strain with accessionNumber {self.pk} is incorrect."
def STD23(self):
return (f"The 'Interspecific hybrid' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'hybrid' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2.")
def STD24(self):
return f"The 'History of deposit' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'depositHistory' for strain with accessionNumber {self.pk} is incorrect."
"The field includes entries separated by '<' meaning 'received from'."
"Entries may include persons or CCs. The name of the CC should be followed by"
"the month, when available, and year of the acquisition. Between parentheses,"
"the strain designation or CC numbers and/or a name can also be entered when "
"a name change has occurred.")
def STD25(self):
return (f"The 'Date of deposit' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'depositDate' for strain with accessionNumber {self.pk} is incorrect."
" The allowed formats are 'YYYY-MM-DD', 'YYYYMMDD', 'YYYYMM', and 'YYYY'.")
def STD26(self):
return (f"The 'Date of inclusion in the catalogue' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'accessionDate' for strain with accessionNumber {self.pk} is incorrect."
" The allowed formats are 'YYYY-MM-DD', 'YYYYMMDD', 'YYYYMM', and 'YYYY'.")
def STD27(self):
return (f"The 'Date of collection' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'collectionDate' for strain with accessionNumber {self.pk} is incorrect."
" The allowed formats are 'YYYY-MM-DD', 'YYYYMMDD', 'YYYYMM', and 'YYYY'.")
def STD28(self):
return (f"The 'Date of isolation' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'isolationDate' for strain with accessionNumber {self.pk} is incorrect."
" The allowed formats are 'YYYY-MM-DD', 'YYYYMMDD', 'YYYYMM', and 'YYYY'.")
def STD29(self):
return (f"The 'Tested temperature growth range' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'temperatureGrowthRange' for strain with accessionNumber {self.pk} is incorrect."
" It must have two decimal numbers separated by ','")
def STD30(self):
return f"The 'Recommended growth temperature' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'temperatureGrowthRange' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD31(self):
return f"The 'Recommended growth temperature' for strain with Accession Number {self.pk} is missing."
return f"The 'temperatureGrowthRange' for strain with accessionNumber {self.pk} is missing."
def STD32(self):
return (f"The 'Recommended growth temperature' for strain with Accession Number {self.pk} is incorrect."
return (f"The 'temperatureGrowthRange' for strain with accessionNumber {self.pk} is incorrect."
" It must have two decimal numbers separated by ','.")
def STD33(self):
return f"The 'Recommended medium for growth' column is a mandatory field in the Strains Sheet. The column can not be empty."
return ("The 'recommendedTemperature' column is a mandatory field in the Strains Sheet. The column can not be empty.")
def STD34(self):
return f"The 'Recommended medium for growth' for strain with Accession Number {self.pk} is missing."
return f"The 'recommendedTemperature' for strain with accessionNumber {self.pk} is missing."
def STD35(self):
return f"The value of 'Recommended medium for growth' for strain with Accession Number {self.pk} is not in the Growth Media Sheet."
return f"The value of 'recommendedTemperature' for strain with accessionNumber {self.pk} is not in the Growth Media Sheet."
def STD36(self):
return f"The 'Forms of supply' column is a mandatory field in the Strains Sheet. The column can not be empty."
return f"The 'supplyForms' column is a mandatory field in the Strains Sheet. The column can not be empty."
def STD37(self):
return f"The 'Forms of supply' for strain with Accession Number {self.pk} is missing."
return f"The 'supplyForms' for strain with accessionNumber {self.pk} is missing."
def STD38(self):
return f"The value of 'Forms of supply' for strain with Accession Number {self.pk} is not in the Forms of Supply Sheet."
return f"The value of 'supplyForms' for strain with accessionNumber {self.pk} is not in the Forms of Supply Sheet."
def STD39(self):
return (f"The 'Coordinates of geographic origin' column for strain with Accession Number {self.pk} is incorrect."
"The allowed formats are two or three decimal numbers separated by ','. Moreover, the first number must be"
"between [-90, 90], the second between [-180, 180], and the third, if provided, can assume any value.")
return (f"The 'geographicCoordinates' column for strain with accessionNumber {self.pk} is incorrect."
"The allowed formats are two, three or four decimal numbers separated by ','. Moreover, the first number must be."
"between [-90, 90], the second between [-180, 180], and the third and fourth refers to the precision and altitude, defined by decimal numbers."
"Put a question mark for lack of precision or altitude when one of them is missing. Leave the values blank when both are missing. ")
def STD40(self):
return (f"The 'Altitude of geographic origin' column for strain with Accession Number {self.pk} is incorrect."
return (f"The 'country' column for strain with accessionNumber {self.pk} is incorrect."
"The allowed formats are one decimal number between [-200, 8000].")
def STD54(self):
return (f"The 'country'column is a mandatory field in the Strains Sheet. The column can not be empty.")
def STD55(self):
return (f"The 'country' for strain with accessionNumber {self.pk} is missing.")
def STD41(self):
return f"The value of 'Ontobiotope term for the isolation habitat' for strain with Accession Number {self.pk} is not in the Ontobiotope Sheet."
return f"The value of 'ontobiotopeTerms' for strain with accessionNumber {self.pk} is not in the Ontobiotope Sheet."
def STD42(self):
return (f"The 'GMO' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'gmo' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2")
def STD43(self):
return (f"The 'Sexual State' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'sexualState' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 'Mata', 'Matalpha', 'Mata/Matalpha', "
"'Matb', 'Mata/Matb', 'MTLa', 'MTLalpha', 'MTLa/MTLalpha', 'MAT1-1', 'MAT1-2', 'MAT1', 'MAT2', 'MT+', 'MT-'")
def STD44(self):
return (f"The 'Ploidy' for strain with Accession Number {self.pk} is not according to specification."
return (f"The 'ploidy' for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 0, 1, 2, 3, 4, 9")
def STD45(self):
@@ -356,24 +383,97 @@ class ErrorMessage():
return msg
def STD46(self):
msg = f"If date of collection/isolation/deposit/inclusion in the catalog is after 2014," \
f" the value of column Geographic Origin must be provided and associated with a country in the " \
f"Geographic Origin sheet. The value is missing or not associated with a country for strain {self.pk}."
return msg
return (f"The 'geographicOrigin' for strain with accessionNumber {self.pk} is not according to specification."
f"The 'geographicOrigin' column must consist of the ID's associated with the Geographic origin sheet.")
def STD47(self):
return "The 'country' column is a mandatory field in the Strains sheet."
def STD48(self):
return "The 'country' column is empty or has missing values."
def STD49(self):
return (f"The “qps” for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 1, 2.")
def STD50(self):
return (f"The “axenicCulture” for strain with accessionNumber {self.pk} is not according to specification."
f" Your value is {self.value} and the accepted values are 'Axenic', 'Not axenic'.")
def STD51(self):
return f"The 'mirriAccessionNumber' must be unique. The '{self.pk}' is repeated."
def STD52(self):
return (f"The 'mirriAccessionNumber' for strain with accessionNumber {self.pk} is incorrect."
" It must have the expression MIRRI followed by 7 digits")
def STD53(self):
return (f"The 'siteLinks' for strain with accessionNumber {self.pk} is incorrect."
" The displayed expression it should be composed of: site name ';' website url." )
def STD56(self):
return (f"The 'siteLinks' for strain with accessionNumber {self.pk} is incorrect."
" The url must be valid. " )
def STD57(self):
return (f"The 'country' for strain with accessionNumber {self.pk} is incorrect."
"This information must be expressed by using the ISO-3166 standard for country"
"codes. The preferred set is ISO 3166-1 alpha-2 (two letters code), but ISO 3166-"
"1 alpha-3 (three letters code) is also accepted. Former country codes must"
"follow standards part three ISO 3166-3 (four letters code). Only one code can"
"be included." )
def STD58(self):
return (f"The 'mtaFile' for strain with accessionNumber {self.pk} is incorrect."
" The url must be valid. " )
def STD59(self):
return (f"The 'absFile' for strain with accessionNumber {self.pk} is incorrect."
"The displayed expression it should be composed of: name ';' website url."
"When only one URL is provided, the title may be omitted. In this case, the URL"
"will be shown in clear to users." )
def STD60(self):
return (f"The 'absFile' for strain with accessionNumber {self.pk} is incorrect."
" The url must be valid. ")
def STD61(self):
return (f"The 'sequenceLiterature' for strain with accessionNumber {self.pk} is incorrect."
"Numeric identifiers separated by a semicolon ';'.")
def STD62(self):
return (f"The 'plasmidCollections' for strain with accessionNumber {self.pk} is incorrect."
"It should include the name of the plasmid followed by the CC number in"
"parentheses. More than one plasmid can be reported, separated by ';'. "
"Plasmid names should be provided as free text."
"CC numbers should be composed by the CC acronym followed by a number"
"separated by a space'. Numeric identifiers separated by a semicolon ';'.")
def STD63(self):
return (f"The 'otherCollectionNumbers' for strain with accessionNumber {self.pk} is incorrect."
" The value must be of the format '<Sequence of characters> <sequence of characters>'.")
def STD64(self):
return (f"The 'type' for strain with accessionNumber {self.pk} is incorrect."
f"Your value is {self.value} and the accepted values are 1, 2.")
def STD65(self):
return (f"The 'status' for strain with accessionNumber {self.pk} is incorrect."
"The structure should be 'type of <character string>.")
def STD68(self):
return (f"The 'geographicOrigin'column is a mandatory field in the Strains Sheet. The column can not be empty.")
def STD69(self):
return (f"The 'geographicOrigin' for strain with accessionNumber {self.pk} is missing.")
"""
Genomic Information Error Codes
"""
def GID01(self):
return f"The 'Strain Acession Number' (Strain AN) column is a mandatory field in the Genomic Information Sheet."
return f"The 'Strain accessionNumber' (Strain AN) column is a mandatory field in the Genomic Information Sheet."
def GID02(self):
return f"The 'Strain Acession Number' (Strain AN) column is empty or has missing values."
return f"The 'Strain accessionNumber' (Strain AN) column is empty or has missing values."
def GID03(self):
return f"The value of 'Strain Acession Number' (Strain AN) {self.value} is not in the Strains sheet."
return f"The value of 'Strain accessionNumber' (Strain AN) {self.value} is not in the Strains sheet."
def GID04(self):
return f"The 'Marker' column is a mandatory field in the Genomic Information Sheet. The column can not be empty."
@@ -397,6 +497,35 @@ class ErrorMessage():
return (f"The 'Sequence' for genomic information with Strain AN {self.pk} is incorrect."
" It must be a sequence of 'G', 'T', 'A', 'C' characteres of any length and without white spaces.")
def GID11(self):
return (f"The 'Sequence' for genomic information with Strain AN {self.pk} is incorrect."
"An INSDC accession number is an alphanumeric"
"code made by a fixed number of letters followed by a fixed number of digits,"
"without any separation. For sequences, the code is currently made of two"
"letters followed by six numbers.")
"""
Version Error Codes
"""
def VRS01(self):
return "The 'Version' columns is a mandatory field in the Version Sheet."
def VRS02(self):
return "The 'Version' columns is empty or has missing values."
def VRS03(self):
return "The 'Date' columns is a mandatory field in the Control Sheet."
def VRS04(self):
return "The 'Date' columns is empty or has missing values."
def VRS05(self):
return f"The version {self.value} is the only one to be used."
"""
Ontobiotope Error Codes
"""
@@ -407,8 +536,12 @@ class ErrorMessage():
def OTD02(self):
return "The 'ID' columns is empty or has missing values."
def OTD03(self):
#def OTD03(self):
return "The 'Name' columns is a mandatory field in the Ontobiotope Sheet. The column can not be empty."
def OTD04(self):
#def OTD04(self):
return f"The 'Name' for ontobiotope with ID {self.pk} is missing."