diff --git a/plasmid/source/core-plugins/petermigration/2/as/definitions.py b/plasmid/source/core-plugins/petermigration/2/as/definitions.py new file mode 100644 index 0000000000000000000000000000000000000000..6cf0d515317babb43e8d21a5145016ef89930064 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/as/definitions.py @@ -0,0 +1,375 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType + +# +# Helper Methods +# +def getPropertyDefinitionByCode(definition, code): + for property in definition: + if property[0] == code: + return property + return None + +# +# Scripts +# +commentsScriptName = "COMMENTS"; +adenosineScriptName = "ADENOSINE_COUNT" +cytosineScriptName= "CYTOSINE_COUNT" +gcScriptName= "GC" +guanosineScriptName= "GUANOSINE_COUNT" +lengthScriptName= "SEQUENCE_LENGTH" +nucelotideScriptName= "ONUCLEOTIDE_COUNT" +thymidineScriptName= "THYMIDINE_COUNT" +tmScriptName= "TM" + +# +# Storage +# +numberOfStorageGroups = 65 + +def getStorageGroupPropertyCodes(): + propertyCodes = []; + for property in getStorageGroupDefinition(): + propertyCodes.append(property[0]); + return propertyCodes; + +def getStorageGroupDefinition(): + return [ + ["STORAGE_NAME", "Physical Storage", "location", DataType.CONTROLLEDVOCABULARY, "FREEZER", "Storage Name", None, None, False], + ["STORAGE_ROW", "Physical Storage", "Storage Row", DataType.INTEGER, None, "Storage Row", None, None, False], + ["STORAGE_COLUMN", "Physical Storage", "Storage Column", DataType.INTEGER, None, "Storage Column", None, None, False], + ["STORAGE_BOX_NAME", "Physical Storage", "box label", DataType.VARCHAR, None, "Storage Box Name", None, None, False], + ["STORAGE_BOX_SIZE", "Physical Storage", "box size", DataType.CONTROLLEDVOCABULARY, "STORAGE_BOX_SIZE", "Storage Box size", None, None, False], + ["STORAGE_USER", "Physical Storage", "frozen by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "Storage User Id", None, None, False], + ["STORAGE_BOX_POSITION", "Physical Storage", "position", DataType.VARCHAR, None, "Storage Box Position", None, None, False] +]; + +# +# Experiment Types +# +experimentDefinition = [ + ["NAME", "General", "Name", DataType.VARCHAR, None, "Name", None, None, False], + ["EXPERIMENTAL_GOALS", "General", "Experimental goals", DataType.MULTILINE_VARCHAR, None, "Goal of the experiment", None, None, False], + ["GRANT", "General", "Grant", DataType.VARCHAR, None, "grant name", None, None, False], + ["START_DATE", "General", "Start Date", DataType.TIMESTAMP, None, "Start Date", None, None, False], + ["END_DATE", "General", "End Date", DataType.TIMESTAMP, None, "End Date", None, None, False], + ["EXPERIMENTAL_RESULTS", "General", "Experimental results", DataType.MULTILINE_VARCHAR, None, "Brief summary of the results obtained", None, None, False], + ["XMLCOMMENTS", "Comments","Comments List", DataType.XML, None, "Several comments can be added by different users", commentsScriptName, None, False] +]; + +# +# Sample Types +# +antibodyDefinition = [ + ["NAME", "General", "antibody ID", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_ID_NR", "General", "antibody_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["ANTIGEN", "General", "antigen", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_FACS_BLOCK", "General", "block facs", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["ANTIBODY_IF_BLOCK", "General", "block IFF", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["ANTIBODY_WB_BLOCK", "General", "block western", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["CATALOGUE_NUMBER", "General", "catalog id #", DataType.VARCHAR, None, "", None, None, False], + ["CLASS", "General", "class", DataType.CONTROLLEDVOCABULARY, "CLASS", "", None, None, False], + ["CLONE", "General", "clone", DataType.VARCHAR, None, "", None, None, False], + ["COMPANY", "General", "company", DataType.CONTROLLEDVOCABULARY, "COMPANY", "", None, None, False], + ["ANTIBODY_FACS_CONC", "General", "conc facs", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_FACS", "", None, None, False], + ["ANTIBODY_IF_CONC", "General", "conc IFF", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_FACS", "", None, None, False], + ["ANTIBODY_IP_CONC", "General", "conc ip", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_IP", "", None, None, False], + ["ANTIBODY_WB_CONC", "General", "conc western", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_WESTERN", "", None, None, False], + ["ANTIBODY_CONCENTRATION", "General", "concentration", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_CROSSREACTIVITY", "General", "crossreactivity", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_FACS_FIX", "General", "fix facs", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["ANTIBODY_IF_FIX", "General", "fix IFF", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["ANTIBODY_WB_FIX", "General", "fix western", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LABEL", "General", "label", DataType.CONTROLLEDVOCABULARY, "LABEL", "", None, None, False], + ["LOTNUMBER", "General", "lotnumber", DataType.VARCHAR, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MONO_POLYCLONAL", "General", "mono/polyclonal", DataType.CONTROLLEDVOCABULARY, "MONO-POLYCLONAL", "", None, None, False], + ["ANTIBODY_FACS_NOTES", "General", "notes FACS", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_IF_NOTES", "General", "notes IFF", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_IP_NOTES", "General", "notes IP", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_WB_NOTES", "General", "notes western", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["ANTIGEN_SIZE", "General", "size", DataType.VARCHAR, None, "", None, None, False], + ["SOURCE", "General", "source", DataType.CONTROLLEDVOCABULARY, "SOURCE", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["BOX", "Storage", "box", DataType.VARCHAR, None, "", None, None, False], + ["RACK", "Storage", "rack", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "reference", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "Comments", "info", DataType.VARCHAR, None, "", None, None, False] +]; + +cellDefinition = [ + ["CO2", "General", "%CO2", DataType.CONTROLLEDVOCABULARY, "CO2", "", None, None, False], + ["ATCC_NUM", "General", "ATCC No.", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_NR", "General", "cell_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_NR_COPY", "General", "cell_id_nr Copy", DataType.VARCHAR, None, "", None, None, False], + ["NAME", "General", "cell ID", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_COPY", "General", "cell ID Copy", DataType.VARCHAR, None, "", None, None, False], + ["CLONE", "General", "clone #", DataType.INTEGER, None, "", None, None, False], + ["COMPARE_FIELD", "General", "compare field", DataType.VARCHAR, None, "", None, None, False], + ["CONC1", "General", "conc.1", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT1", "General", "concentration unit 1", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC2", "General", "conc.2", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT2", "General", "concentration unit 2", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC3", "General", "conc.3", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT3", "General", "concentration unit 3", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC4", "General", "conc.4", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT4", "General", "concentration unit 4", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.TIMESTAMP, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GROWTH_TEMPERATURE", "General", "growth temperature", DataType.CONTROLLEDVOCABULARY, "GROWTH_TEMPERATURE", "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LINE_NAME", "General", "line name", DataType.VARCHAR, None, "", None, None, False], + ["MEDIUM", "General", "medium", DataType.CONTROLLEDVOCABULARY, "MEDIUM", "", None, None, False], + ["MEDIUM_SPECIALS", "General", "medium specials", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MYCOPLASM_TESTED", "General", "mycoplasm_tested", DataType.BOOLEAN, None, "", None, None, False], + ["OBTAINED_FROM", "General", "obtained from", DataType.CONTROLLEDVOCABULARY, "CELL_OBTAINED_FROM", "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PARENTAL_CELL", "General", "parental cell", DataType.VARCHAR, None, "", None, None, False], + ["PASSAGE", "General", "passage", DataType.VARCHAR, None, "", None, None, False], + ["PERS_CELL_NUMBER", "General", "PersCellNumber", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID1", "General", "plasmid ID 1", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID2", "General", "plasmid ID 2", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION_PLASMID1", "General", "sel.1", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID2", "General", "sel.2", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID3", "General", "sel.3", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID4", "General", "sel.4", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "CELL_SPECIES", "", None, None, False], + ["VIRUS_ID1", "General", "virus ID 1", DataType.VARCHAR, None, "", None, None, False], + ["VIRUS_ID2", "General", "virus ID 2", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "reference", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "Comments", "info", DataType.VARCHAR, None, "", None, None, False] +]; + +strainDefinition = [ + ["CO2", "General", "%CO2", DataType.CONTROLLEDVOCABULARY, "CO2", "", None, None, False], + ["BACKGROUND", "General", "background", DataType.CONTROLLEDVOCABULARY, "STRAIN_BACKGROUND", "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["CIR", "General", "cir", DataType.CONTROLLEDVOCABULARY, "CIR", "", None, None, False], + ["CONC_INDUCER1", "General", "conc. inducer 1", DataType.VARCHAR, None, "", None, None, False], + ["CONC_INDUCER2", "General", "conc. inducer 2", DataType.VARCHAR, None, "", None, None, False], + ["CONC_INDUCER3", "General", "conc. inducer 3", DataType.VARCHAR, None, "", None, None, False], + ["CONC1", "General", "conc.1", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT1", "General", "concentration unit 1", DataType.VARCHAR, None, "", None, None, False], + ["CONC2", "General", "conc.2", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT2", "General", "concentration unit 2", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC3", "General", "conc.3", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT3", "General", "concentration unit 3", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["DERIVATION", "General", "derivation", DataType.CONTROLLEDVOCABULARY, "DERIVATION", "", None, None, False], + ["EXPRESSED_PROTEIN1", "General", "expressed protein 1", DataType.VARCHAR, None, "", None, None, False], + ["EXPRESSED_PROTEIN2", "General", "expressed protein 2", DataType.VARCHAR, None, "", None, None, False], + ["EXPRESSED_PROTEIN3", "General", "expressed protein 3", DataType.VARCHAR, None, "", None, None, False], + ["FREE_PLASMID", "General", "freeplasmid", DataType.VARCHAR, None, "", None, None, False], + ["FREEZEDATE", "General", "freezedate", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GAL", "General", "gal", DataType.CONTROLLEDVOCABULARY, "GAL", "", None, None, False], + ["GENE_EXPRESSION1", "General", "gene expression 1", DataType.VARCHAR, None, "", None, None, False], + ["GENE_EXPRESSION2", "General", "gene expression 2", DataType.VARCHAR, None, "", None, None, False], + ["GROWTH_TEMPERATURE", "General", "growth temperature", DataType.CONTROLLEDVOCABULARY, "GROWTH_TEMPERATURE", "", None, None, False], + ["INDUCER1", "General", "inducer 1", DataType.VARCHAR, None, "", None, None, False], + ["INDUCER2", "General", "inducer 2", DataType.VARCHAR, None, "", None, None, False], + ["INDUCER3", "General", "inducer 3", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MARKERS", "General", "markers", DataType.VARCHAR, None, "", None, None, False], + ["MAT", "General", "mat", DataType.CONTROLLEDVOCABULARY, "MAT", "", None, None, False], + ["MEDIUM", "General", "medium", DataType.CONTROLLEDVOCABULARY, "MEDIUM", "", None, None, False], + ["MEDIUM_SPECIALS", "General", "medium specials", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["NUMBER", "General", "number", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_OBTAINED_FROM", "General", "obtained from", DataType.VARCHAR, None, "", None, None, False], + ["ORF", "General", "orf", DataType.VARCHAR, None, "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PARENTAL_CELL", "General", "parental cell", DataType.VARCHAR, None, "", None, None, False], + ["PASSAGE", "General", "passage", DataType.VARCHAR, None, "", None, None, False], + ["PERSYEASTNUMBER", "General", "persyeastnumber", DataType.INTEGER, None, "", None, None, False], + ["PETERYEASTNUMBER", "General", "peteryeastnumber", DataType.INTEGER, None, "", None, None, False], + ["PLASMID_ID1", "General", "plasmid ID 1", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID2", "General", "plasmid ID 2", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID3", "General", "plasmid ID 3", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER1", "General", "promoter 1", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER2", "General", "promoter 2", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER3", "General", "promoter 3", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "General", "reference", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION1", "General", "sel.1", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION2", "General", "sel.2", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION3", "General", "sel.3", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION", "General", "selection", DataType.CONTROLLEDVOCABULARY, "SELECTION_YEAST", "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["STRAIN_SOURCE", "General", "source", DataType.CONTROLLEDVOCABULARY, "STRAIN_SOURCE", "", None, None, False], + ["SPECIES", "General", "species", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_ID_NR", "General", "strain_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["NAME", "General", "strain ID", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_NAME", "General", "strain name", DataType.VARCHAR, None, "", None, None, False] +]; + +oligoDefinition = [ + ["AMOUNT", "General", "amount", DataType.REAL, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_COMPANY", "General", "company", DataType.CONTROLLEDVOCABULARY, "OLIGO_COMPANY", "", None, None, False], + ["CONCENTRATION", "General", "concentration", DataType.REAL, None, "", None, None, False], + ["CONCENTRATION_UNIT", "General", "concentration unit", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GENE_LOCUS", "General", "gene locus", DataType.VARCHAR, None, "", None, None, False], + ["GRADE", "General", "grade", DataType.CONTROLLEDVOCABULARY, "OLIGO_GRADE", "", None, None, False], + ["COMMENTS", "General", "Info", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["OD", "General", "od", DataType.INTEGER, None, "", None, None, False], + ["NAME", "General", "oligo ID", DataType.INTEGER, None, "", None, None, False], + ["OLIGO_ID_NR", "General", "oligo_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["ORDER_DATE", "General", "order date", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_ORGANISM", "General", "organism", DataType.CONTROLLEDVOCABULARY, "OLIGO_ORGANISM", "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PRIMER_PARTNER", "General", "primer partner", DataType.VARCHAR, None, "", None, None, False], + ["PRIMER_POSITION", "General", "primer position", DataType.CONTROLLEDVOCABULARY, "PRIMER_POSITION", "", None, None, False], + ["PUBLISHED_IN", "General", "PublishedIn", DataType.VARCHAR, None, "", None, None, False], + ["RESTRICTION_SITE", "General", "restriction site", DataType.CONTROLLEDVOCABULARY, "RESTRICTION", "", None, None, False], + ["SEQUENCE", "General", "sequence", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.VARCHAR, None, "", None, None, False], + ["USAGE", "General", "usage", DataType.CONTROLLEDVOCABULARY, "OLIGO_USAGE", "", None, None, False], + ["ADENOSINE", "Calculated fields", "adenosine", DataType.INTEGER, None, "", adenosineScriptName, None, False], + ["CYTOSINE", "Calculated fields", "cytosine", DataType.INTEGER, None, "", cytosineScriptName, None, False], + ["GUANOSINE", "Calculated fields", "guanosine", DataType.INTEGER, None, "", guanosineScriptName, None, False], + ["THYMIDINE", "Calculated fields", "thymidine", DataType.INTEGER, None, "", thymidineScriptName, None, False], + ["LENGTH", "Calculated fields", "length", DataType.INTEGER, None, "", lengthScriptName, None, False], + ["GC", "Calculated fields", "gc", DataType.REAL, None, "", gcScriptName, None, False], + ["TM", "Calculated fields", "tm", DataType.REAL, None, "", tmScriptName, None, False], + ["O_NUCLEOTIDE", "Calculated fields", "O nucleotide", DataType.INTEGER, None, "", nucelotideScriptName, None, False] +]; + +plasmidDefinition = [ + ["BACKBONE", "General", "backbone", DataType.CONTROLLEDVOCABULARY, "BACKBONE", "", None, None, False], + ["BACKUP_STORAGE", "General", "backup storage", DataType.VARCHAR, None, "", None, None, False], + ["BACTERIAL_HOST", "General", "bacterial host", DataType.CONTROLLEDVOCABULARY, "BACTERIAL_HOST", "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["BIOSAFETY_LEVEL", "General", "biosafety level", DataType.CONTROLLEDVOCABULARY, "BIOSAFETY_LEVEL", "", None, None, False], + ["BOXNR", "General", "boxNr", DataType.VARCHAR, None, "", None, None, False], + ["CONCENTRATION_UNIT", "General", "concentration unit", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONSTRUCTION_METHOD", "General", "construction method", DataType.VARCHAR, None, "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["CTERMTAG", "General", "Ctermtag", DataType.VARCHAR, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["DATE_OF_CONSTRUCTION", "General", "date of construction", DataType.TIMESTAMP, None, "", None, None, False], + ["DERIVATIVE_OF", "General", "Derivative of", DataType.VARCHAR, None, "", None, None, False], + ["ECOLI_STRAIN", "General", "E.coli strain", DataType.VARCHAR, None, "", None, None, False], + ["EXCISE_INSERT", "General", "excise insert", DataType.VARCHAR, None, "", None, None, False], + ["EXCISE_INSERT2", "General", "excise insert 2", DataType.VARCHAR, None, "", None, None, False], + ["FREEZEDATE", "General", "freezedate", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["FUNCTIONAL_ELEMENTS_INSERT", "General", "functional elements insert", DataType.VARCHAR, None, "", None, None, False], + ["HYPERCARD_FILE", "General", "hypercard file", DataType.VARCHAR, None, "", None, None, False], + ["INFO", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["INSERT", "General", "insert", DataType.VARCHAR, None, "", None, None, False], + ["INSERTION_SITE", "General", "insertion site", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LINEARIZE", "General", "linearize", DataType.VARCHAR, None, "", None, None, False], + ["MARKER", "General", "Marker", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.VARCHAR, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["NAME_OF_PARENTAL_CLONE", "General", "name of parental clone", DataType.VARCHAR, None, "", None, None, False], + ["NAME_OF_VECTOR", "General", "name of vector", DataType.VARCHAR, None, "", None, None, False], + ["NTERMTAG", "General", "Ntermtag", DataType.VARCHAR, None, "", None, None, False], + ["NUCLEOTIDE_SEQUENCE", "General", "nucleotide sequence", DataType.VARCHAR, None, "", None, None, False], + ["OLIGOS_USED", "General", "oligos used", DataType.VARCHAR, None, "", None, None, False], + ["ORGANISM", "General", "organism", DataType.VARCHAR, None, "", None, None, False], + ["ORIGIN_OF_REPLICATION", "General", "origin of replication", DataType.VARCHAR, None, "", None, None, False], + ["OTHER_MARKER", "General", "other marker", DataType.VARCHAR, None, "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PERSPLASMIDNUM", "General", "persPlasmidnum", DataType.REAL, None, "", None, None, False], + ["PETERPLASMIDNUM", "General", "PeterPlasmidNum", DataType.INTEGER, None, "", None, None, False], + ["NAME", "General", "plasmid ID", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID_NR", "General", "plasmid_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["PLASMIDNAME", "General", "plasmidname", DataType.VARCHAR, None, "", None, None, False], + ["PRIMERS", "General", "primers", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER", "General", "promoter", DataType.CONTROLLEDVOCABULARY, "PROMOTER", "", None, None, False], + ["SELECTION_IN_BACTERIA", "General", "selection in bacteria", DataType.CONTROLLEDVOCABULARY, "SELECTION_IN_BACTERIA", "", None, None, False], + ["SELECTION_IN_EUKARYOTES", "General", "selection in eukaryotes", DataType.CONTROLLEDVOCABULARY, "SELECTION_IN_EUKARYOTES", "", None, None, False], + ["SEQUENCE_FILE_NAME", "General", "sequence file name", DataType.VARCHAR, None, "", None, None, False], + ["SEQUENCING_DATE", "General", "sequencing date", DataType.TIMESTAMP, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["SHELF", "General", "shelf", DataType.VARCHAR, None, "", None, None, False], + ["SIZE_INSERT", "General", "size insert", DataType.REAL, None, "", None, None, False], + ["SIZE_OF_INSERT", "General", "size of insert", DataType.VARCHAR, None, "", None, None, False], + ["SIZE_VECTOR", "General", "size vector", DataType.REAL, None, "", None, None, False], + ["PLASMID_SOURCE", "General", "source", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "PLASMID_ORGANISM", "", None, None, False], + #["TUBES", "General", "TUBES", DataType.VARCHAR, None, "", None, None, False], + ["URL", "Reference", "url", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "published in", DataType.VARCHAR, None, "", None, None, False] +]; + +chemicalDefinition = [ + ["ARTICLE", "General", "Article", DataType.VARCHAR, None, "", None, None, False], + ["COMPANY", "General", "Company", DataType.CONTROLLEDVOCABULARY, "COMPANY", "", None, None, False], + ["ARTICLE_NUM", "General", "Article Number", DataType.VARCHAR, None, "", None, None, False], + ["RECORD_NUMBER", "General", "RecordNumber", DataType.VARCHAR, None, "", None, None, False], + ["LOCATION", "Location", "Location", DataType.VARCHAR, None, "", None, None, False] +]; + +siRNADefinition = [ + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["GENE_LOCUS", "General", "gene locus", DataType.VARCHAR, None, "", None, None, False], + ["EXON_OR_THREE_PRIME", "General", "exon or three prime", DataType.CONTROLLEDVOCABULARY, "EXON_OR_THREE_PRIME", "", None, None, False], + ["EXON", "General", "exon #", DataType.INTEGER, None, "", None, None, False], + ["3_PRIME_POSITION", "General", "3' position", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "SIRNA_SPECIES", "", None, None, False], + ["SEQUENCE", "General", "SEQUENCE", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_COMPANY", "General", "Company", DataType.CONTROLLEDVOCABULARY, "SIRNA_COMPANY", "", None, None, False], + ["STOCK_CONCENTRATION", "General", "Stock concentration", DataType.REAL, None, "", None, None, False], + ["WORKING_CONCENTRATION", "General", "Working concentration", DataType.REAL, None, "", None, None, False], + ["EFFICIENCY", "General", "Efficiency", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_QPCR", "General", "Efficiency_qPCR", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_WESTERN", "General", "Efficiency_Western", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_OTHER", "General", "Efficiency_other", DataType.VARCHAR, None, "", None, None, False], + ["OFF_TARGET_EFFECTS", "General", "Off target effects", DataType.VARCHAR, None, "", None, None, False], + ["INFO", "General", "Info", DataType.VARCHAR, None, "", None, None, False], + ["SPECIFIC_SPLICE_VARIANT", "General", "Specific splice variant", DataType.VARCHAR, None, "", None, None, False], + ["TRANSFECTION_AGENT", "General", "Transfection agent", DataType.CONTROLLEDVOCABULARY, "TRANSFECTION_AGENT", "", None, None, False], + ["LIBRARY", "General", "Library", DataType.VARCHAR, None, "", None, None, False], + ["CHARACTERIZED_BY_COMPANY", "General", "Characterized by company", DataType.VARCHAR, None, "", None, None, False], + ["NUMBERINPOOL", "General", "NumberINpool", DataType.INTEGER, None, "", None, None, False], + ["TEST", "General", "Test", DataType.VARCHAR, None, "", None, None, False], + ["CHEMICAL_MODIFICATION", "General", "Chemical modification", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_NAME", "General", "Oligo name", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_OLIGONUMBER", "General", "siRNA_OligoNumber", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_FREEZER_LOCATION", "General", "Freezer Location", DataType.CONTROLLEDVOCABULARY, "SIRNA_FREEZER_LOCATION", "", None, None, False], + ["DRAWER", "General", "Drawer", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED", "Reference", "Published", DataType.VARCHAR, None, "", None, None, False] +]; + +# +# Data Set Types +# +documentDefinition = [ + ["CREATION_DATE", "General", "date created", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "date modified", DataType.TIMESTAMP, None, "", None, None, False], + ["INFO", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["ID_NR", "General", "id_nr", DataType.VARCHAR, None, "", None, None, False], + ["FILE", "General", "file", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL", "General", "serial", DataType.INTEGER, None, "", None, None, False] + +]; diff --git a/plasmid/source/core-plugins/petermigration/2/as/definitionsVoc.py b/plasmid/source/core-plugins/petermigration/2/as/definitionsVoc.py new file mode 100644 index 0000000000000000000000000000000000000000..6c41596dc8dd2ff2c3e1aff1b0ae83ddf1961722 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/as/definitionsVoc.py @@ -0,0 +1,852 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# +# Helper Methods +# +def getVocabularyTermCodeForVocabularyAndTermLabel(vocabularyCode, termLabel): + vocabulary = vocabularyDefinitions[vocabularyCode] + for term in vocabulary: + if term[1] == termLabel: + #print repr("TERM NOT FOUND IN VOCABULARY LIST: " + unicode(vocabularyCode) + " : '" + unicode(termLabel) + "'") + return term[0] + return None + +# "VOCABULARY_CODE" : { "TERM_CODE" : "OBJECT" } +createdVocabularyTerms = { } + +def printCreatedTerms(): + print "--- Created Vocabulary Terms Report" + for vocabularyCode in createdVocabularyTerms: + print "Vocabulary [" + vocabularyCode + "]" + for vocabularyTermCode in createdVocabularyTerms[vocabularyCode]: + print "Term [" + vocabularyTermCode + "] Label: [" + repr(createdVocabularyTerms[vocabularyCode][vocabularyTermCode].getLabel()) + "]" + print "---" + +def getCreatedTerm(vocabularyCode, termCode): + if vocabularyCode in createdVocabularyTerms: + if termCode in createdVocabularyTerms[vocabularyCode]: + return createdVocabularyTerms[vocabularyCode][termCode] + return None + +def addCreatedTerm(vocabularyCode, termCode, object): + if vocabularyCode not in createdVocabularyTerms: + createdVocabularyTerms[vocabularyCode] = {} + createdVocabularyTerms[vocabularyCode][termCode] = object + +def createVocabularyTerm(tr, vocabularyCode, termCode, termLabel): + createdTerm = getCreatedTerm(vocabularyCode, termCode) + if createdTerm is None: + vocabulary = tr.getVocabularyForUpdate(vocabularyCode) + + for term in vocabulary.getTerms(): + if term.getCode() == termCode: + createdTerm = term + + if createdTerm is None: + createdTerm = tr.createNewVocabularyTerm() + createdTerm.setCode(termCode) + createdTerm.setLabel(termLabel) + createdTerm.setOrdinal(vocabulary.getTerms().size()) + vocabulary.addTerm(createdTerm) + addCreatedTerm(vocabularyCode, termCode, createdTerm) + return createdTerm + +# +# Vocabularies +# + +vocabularyDefinitions = { + "ALL_LAB_MEMBERS" : [ + ["ANNA_DEPLAZES", "Anna Deplazes"], + ["ANNE-CHRISTINE_BUTTY", "Anne-Christine Butty"], + ["BRIAN_LUKE", "Brian Luke"], + ["CAROLINE_ZBINDEN", "Caroline Zbinden"], + ["CELINE_LAFOURCADE", "Celine Lafourcade"], + ["CHRISTINE_RUPP", "Christine Rupp"], + ["CLAUDINE_KRAFT", "Claudine Kraft"], + ["EDYTA_SIERGIEJUK", "Edyta Siergiejuk"], + ["FABIAN_HERZOG", "Fabian Herzog"], + ["FABIAN_RUDOLF", "Fabian Rudolf"], + ["FRANK_VAN_DROGEN", "Frank Van Drogen"], + ["GERDA_JORRITSMA", "Gerda Jorritsma"], + ["GWEN_RABUT", "Gw\xe9nael Rabut"], + ["INGRID_STOFFEL-STUDER", "Ingrid Stoffel-Studer"], + ["IRAM_ZAIDI", "Iram Zaidi"], + ["IZABELA_SUMARA", "Izabela Sumara"], + ["LIONEL_PINTARD", "Lionel Pintard"], + ["MALIKAJAQUENOUD", "MalikaJaquenoud"], + ["MARC_SOHRMANN", "Marc Sohrmann"], + ["MARIE-LYN_HECHT", "Marie-Lyn Hecht"], + ["MARIE-PIERRE_GULLI", "Marie-Pierre Gulli"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["MICHAEL_OLMA", "Michael Olma"], + ["MICHAEL_SCHNEIDER", "Michael Schneider"], + ["MICHELE_KNAUS", "Michele Knaus"], + ["MONIKA_GERSBACH", "Monika Gersbach"], + ["NATHALIE_MEYER-SCHALLER", "Nathalie Meyer-Schaller"], + ["NATHALIE_PERRINJAQUET", "Nathalie Perrinjaquet"], + ["NICOLAS_DARD", "Nicolas Dard"], + ["NICOLAS_PAGE", "Nicolas Page"], + ["PATRICK_PEDRIOLI", "Patrick Pedrioli"], + ["PHILIPPE_WIGET", "Philippe Wiget"], + ["PIERRE_MAILLARD", "Pierre Maillard"], + ["REINHARD_DECHANT", "Reinhard Dechant"], + ["SANDER_SPRINGER", "Sander Springer"], + ["SARAH_GLASER", "Sarah Glaser"], + ["SARAH_MAERKI", "Sarah M\xe4rki"], + ["SEBASTIAN_LEIDEL", "Sebastian Leidel"], + ["SERGE_PELET", "Serge Pelet"], + ["STEFAN_MUELLER", "Stefan M�ller"], + ["TANIA_ROBERTS", "Tania Roberts"], + ["THIMO_KURZ", "Thimo Kurz"], + ["TOBIAS_BRAUN", "Tobias Braun"], + ["VANESSA_REZGUI", "Vanessa Rezgui"], + ["WOJCIECH_PIWKO", "Wojciech Piwko"], + ["YUKIKO_SHIMADA", "Yukiko Shimada"], + ["YVONNE_GLOOR", "Yvonne Gloor"], + ["JOCHEN_BECK", "Jochen Beck"], + ["MONIKA_KIJANSKA", "Monika Kijanska"], + ["ANGIE_RAGHEB", "Angie Ragheb"], + ["ANNE_PACQUELET", "Anne Pacquelet"], + ["BJORN_HEGEMANN", "Bj\xf6rn Hegemann"], + ["JANNY_TILMA", "Janny Tilma"], + ["THIBAULT_COURTHEOUX", "Thibault Courtheoux"], + ["SAMUEL_GILBERTO", "Samuel Gilberto"], + ["REMY_BUSER", "Remy Buser"], + ["RADOSLAV_ENCHEV", "Radoslav Enchev"], + ["MICHAELA_HUBNER", "Michaela Hubner"], + ["MIA_LI", "Mia Li"], + ["JULIEN_MOUYSSET", "Julien Mouysset"] + ], + "LAB_MEMBERS_INITIALS" : [ + ["AD", "AD"], + ["ACB", "ACB"], + ["BL", "BL"], + ["CZ", "CZ"], + ["CL", "CL"], + ["CR", "CR"], + ["CK", "CK"], + ["ES", "ES"], + ["FH", "FH"], + ["FR", "FR"], + ["FD", "FD"], + ["GJ", "GJ"], + ["GR", "GR"], + ["ISS", "ISS"], + ["IZ", "IZ"], + ["IS", "IS"], + ["LP", "LP"], + ["MJ", "MJ"], + ["MSO", "MSo"], + ["MH", "MH"], + ["MG", "MG"], + ["MP", "MP"], + ["MO", "MO"], + ["MSC", "MSc"], + ["MK", "MK"], + ["MG", "MG"], + ["NS", "NS"], + ["NPE", "NPe"], + ["ND", "ND"], + ["NPA", "NPa"], + ["PP", "PP"], + ["PW", "PW"], + ["PM", "PM"], + ["RD", "RD"], + ["SS", "SS"], + ["SG", "SG"], + ["SMA", "SMa"], + ["SL", "SL"], + ["SP", "SP"], + ["SM", "SM"], + ["TR", "TR"], + ["TK", "TK"], + ["TB", "TB"], + ["VR", "VR"], + ["WP", "WP"], + ["YS", "YS"], + ["YG", "YG"], + ["JB", "JB"], + ["MKI", "MKi"] + ], + "BLOCK" : [ + ["1BSA_01TRITON-X100", "1% BSA; 0.1% Triton-X100"], + ], + "CLASS" : [ + ["IGM", "IgM"], + ["IGG1", "IgG1"], + ["IGG2", "IgG2"] + ], + "COMPANY" : [ + ["ABCAM", "abcam"], + ["CELL_SIGNALING", "cell signaling"], + ["STRATAGEN", "stratagene"], + ["CLONTECH", "clontech"], + ["UBI", "ubi"], + ["SOUTHERN_BIOTECH", "southern biotech"], + ["PIERCE", "pierce"], + ["PHARMIGEN", "pharmingen"], + ["MOLECULAR_PROBES", "molecular probes"], + ["PHARMACIA", "pharmacia"], + ["BIORAD", "biorad"], + ["EUROGENETIC", "eurogentec"], + ["HOMEMADE", "homemade"], + ["BD_BIOSCIENCE", "BD bioscience"], + ["OBTAINED_FROM", "obtained from "], + ["ZYMED", "Zymed"], + ["UNKNOWN", "Unknown"], + ["SANTA_CRUZ", "Santa Cruz"], + ["BIOLEGEND", "Biolegend"], + ["BETHYL", "Bethyl"], + ["UPSTATE", "Upstate"], + ["ROCKLAND", "Rockland"], + ["NOVUS_BIOLOGICALS", "Novus Biologicals"], + ["CHEMICON_INTERNATIONAL", "Chemicon International"], + ["SIGMA", "Sigma"], + ["ALPHA_DIAGNOSTIC_INTERNATIONAL", "Alpha Diagnostic International"], + ["MILLIPORE", "Millipore"], + ["ACTIVE_MOTIF", "Active motif"], + ["NEB", "NEB"], + ["NEOMARKERS", "Neomarkers"], + ["LUBIOSCIENCE", "LubioScience"], + ["EBIOSCIENCE", "eBioscience"], + ["INVITROGEN", "Invitrogen"], + ["STRESSGEN", "Stressgen"], + ["COVANCE", "Covance"], + ["ENZO_LIFE_SCIENCES", "Enzo Life Sciences"], + ["CALBIOCHEM", "Calbiochem"], + ["ROCHE", "Roche"], + ["CYTOSKELETON", "Cytoskeleton"], + ["OPEN_BIOSYSTEMS", "Open Biosystems"], + ["BD_TRANSDUCTION", "BD Transduction"], + ["ATLAS_ANTIBODIES_AB", "Atlas Antibodies AB"], + ["GENENTECH", "Genentech"], + ["TRANSDUCTION_LABS", "Transduction Labs"], + ["ANTIBODIES_INCORPORATED", "Antibodies Incorporated"], + ["BABCO", "BAbCO"], + ["ERICH_NIGG_LAB_BASEL", "Erich Nigg lab (Basel)"], + ["FRANCIS_BARR", "Francis Barr"], + ["AVIVA_SYSTEMS_BIOLOGY", "Aviva Systems Biology"], + ["LUCERNACHEM", "LucernaChem"], + ["LI-COR", "LI-COR"], + ["ABGENT", "Abgent"], + ["CHROMOTEK", "Chromotek"], + ["ABNOVA", "Abnova"], + ["UNKNOWN", "Unknown"], + ["ABSEA", "Absea"], + ["GE_HEALTHCARE", "GE Healthcare"], + ["GRAMSCH_LABORATORIES", "Gramsch Laboratories"], + ["ADIPOGEN", "Adipogen"], + ["COSMO_BIO_CO", "Cosmo bio co."], + ["BECKTON_DICKINSON", "Beckton Dickinson"], + ["BIOTIUM", "Biotium"] + ], + "CONCENTRATION_FACS" : [ + ["1_TO_10", "1 : 10"], + ["1_TO_20", "1 : 20"], + ["1_TO_30", "1 : 30"], + ["1_TO_40", "1 : 40"], + ["1_TO_50", "1 : 50"], + ["1_TO_100", "1 : 100"], + ["1_TO_200", "1 : 200"], + ["1_TO_500", "1 : 500"], + ["1_TO_1000", "1 : 1000"], + ["1_TO_2000", "1 : 2000"], + ["1_TO_3000", "1 : 3000"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CONCENTRATION_IP" : [ + ["1UL", "1 �l"], + ["5UL", "5 �l"], + ["10UL", "10 �l"], + ["15UL", "15 �l"], + ["20UL", "20 �l"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CONCENTRATION_WESTERN" : [ + ["1_TO_100", "1 : 100"], + ["1_TO_500", "1 : 500"], + ["1_TO_1000", "1 : 1000"], + ["1_TO_2000", "1 : 2000"], + ["1_TO_3000", "1 : 3000"], + ["1_TO_5000", "1 : 5000"], + ["1_TO_10000", "1 : 10000"], + ["1_TO_20000", "1 : 20000"], + ["1_TO_25000", "1 : 25000"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CURRENT_LAB_MEMBERS" : [ + ["CAROLINE_ZBINDEN", "Caroline Zbinden"], + ["FRANK_VAN_DROGEN", "Frank Van Drogen"], + ["INGRID_STOFFEL-STUDER", "Ingrid Stoffel-Studer"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["REINHARD_DECHANT", "Reinhard Dechant"], + ["WOJCIECH_PIWKO", "Wojciech Piwko"], + ["JOCHEN_BECK", "Jochen Beck"] + ], + "FIX" : [ + ["1H-RT", "1h, RT"], + ["PTEMF", "PTEMF"], + ["PFA", "PFA"], + ["MEOH", "MeOH"] + ], + "LABEL" : [ + ["HRP", "hrp"], + ["AP", "ap"], + ["FITC", "fitc"], + ["CY3", "Cy3"], + ["ALEXA647", "Alexa 647"] + ], + "ANTIBODY_LOCATION" : [ + ["SMALL_PETER_LAB", "Small Peter Lab"], + ["BIG_PETER_LAB", "Big Peter Lab"], + ["NEW_PETER_LAB", "New Peter Lab"], + ["MINUS20_C-FLOOR", "-20C C-Floor"] + ], + "MONO-POLYCLONAL" : [ + ["MONOCLONAL", "Monoclonal"], + ["POLYCLONAL", "Polyclonal"], + ["UNKNOWN", "Unknown"] + ], + "SOURCE" : [ + ["MOUSE", "Mouse"], + ["RABBIT", "Rabbit"], + ["HAMSTER", "Hamster"], + ["GOAT", "Goat"], + ["RAT", "Rat"], + ["CHICKEN", "Chicken"], + ["SHEEP", "Sheep"], + ["HUMAN", "Human"], + ["GUINEA_PIG", "Guinea pig"], + ["DONEKY", "Donkey"], + ["UNKNOWN", "Unknown"] + ], + "CELL_LOCATION" : [ + ["FRIDGE", "fridge"], + ["FREEZER", "freezer"], + ["REFCO", "refco"], + ["TANK", "tank"] + ], + "SELECTION" : [ + ["NEOMYCIN_G418", "Neomycin/G418"], + ["HYGROMYCIN", "Hygromycin"], + ["MPA", "MPA"], + ["G418", "G418"], + ["PUROMYCIN", "puromycin"], + ["BLASTICIDIN", "Blasticidin"], + ["ZEOCIN", "Zeocin"] + ], + "CO2" : [ + ["5", "5"], + ["7.5", "7.5"] + ], + "GROWTH_TEMPERATURE" : [ + ["37", "37"], + ["28", "28"], + ["34", "34"] + ], + "MEDIUM" : [ + ["RPMI1640", "RPMI 1640"], + ["ISCOVES", "Iscoves"], + ["DMEM", "DMEM"], + ["LB", "LB"], + ["DMEM_NUTRIENT", "DMEM nutrient mixture F-12 HAM [D8437]"] + ], + "CELL_OBTAINED_FROM" : [ + ["FREIBURG", "Freiburg"], + ["ATCC", "ATCC"], + ["DANIEL_GERLICH", "Daniel Gerlich"], + ["ERICH_NIGG", "Erich Nigg"], + ["KREK", "Krek"], + ["TONY_HEYMAN", "Tony Heyman"], + ["THOMAS-WILD_ULRIKE-KUTAY", "Thomas Wild/Ulrike Kutay"], + ["JAN_MICHAEL_PETERS", "Jan-Michael Peters"], + ["M_BRANDEIS", "M Brandeis"], + ["ARI_HELENIUS", "Ari Helenius"], + ["ROMEO_RICCI", "Romeo Ricci"] + ], + "CELL_SPECIES" : [ + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["CHINESE_HAMSTER", "chines hamster"], + ["HYBRIDOMA", "hybridoma (human & mouse)"] + ], + "CONC_UNITS" : [ + ["MICROG_MICROL", "�g/�l"], + ["MG_ML", "mgl/ml"], + ["UG_ML", "ug/ml"] + ], + "STRAIN_SOURCE" : [ + ["F_CHANG", "F. Chang"], + ["J_CHANT", "J. Chant"], + ["R_DESHAIES", "R. Deshaies"], + ["E_ELION", "E. Elion"], + ["P_HIETER", "P. Hieter"], + ["I_HERSKOWITZ", "I. Herskowitz"], + ["A_NEIMAN", "A. Neiman"], + ["P_SORGER", "P. Sorger"], + ["T_STEARNS", "T. Stearns"], + ["MARC_BONDEL", "Marc Bondel"], + ["G_SUMARA", "G. Sumara"], + ["MICHAEL_ALTMANN", "Michael Altmann"], + ["HETEROZYGOUS_DIPLOID_COLLECTION", "Heterozygous diploid collection"], + ["ANNE-CHRISTINE_BUTTY", "Anne-Christine Butty"], + ["ANNE_PAQUELET", "Anne Paquelet"], + ["YAGMUR-TURGAY_KUTAY-GROUP", "Yagmur Turgay - Kutay group"], + ["BARBAR_CATARIN", "Barbar Catarin"], + ["FRANK_VAN-DROGEN", "Frank van Drogen"], + ["HEMMO_MEYER", "Hemmo Meyer"], + ["JEAN-MARC_GALLAND", "Jean-Marc Galland"], + ["JEFF_PARVIN", "Jeff Parvin"], + ["MARIE-PIERRE_GULLI", "Marie-Pierre Gulli"], + ["MIKIKO_TAKAHASHI", "Mikiko Takahashi"], + ["SANDRA_HENCHOZ", "Sandra Henchoz"], + ["MALIKA_JAQUENOUD", "Malika Jaquenoud"], + ["GERDA_JORRITSMA", "Gerda Jorritsma"], + ["CELINE_LAFOURCADE", "Céline Lafourcade"], + ["CELINE_LONGARETTI", "Céline Longaretti"], + ["BRIAN_LUKE", "Brian Luke"], + ["GUY_NIEDERHAUSER", "Guy Niederhäuser"], + ["NICOLAS_PAGE", "Nicolas Pag�"], + ["NATHALIE_PERRINJAQUET", "Nathalie Perrinjaquet"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["AUDREY_PETIT", "Audrey Petit"], + ["LIONEL_PINTARD", "Lionel Pintard"], + ["YUKIKO_SHIMADA", "Yukiko Shimada"], + ["PHILIPPE_WIGET", "Philippe Wiget"], + ["VOLKER_STUCKE", "Volker Stucke"], + ["KATRIN_PETER", "Katrin Peter"], + ["MARC_BLONDEL", "marc blondel"], + ["M_FUNK", "M. Funk"], + ["ATTILA_BECSKEI", "Attila Becskei"], + ["GWENAEL_RABUT", "Gwenael Rabut"], + ["PHILIP_JERMANN", "Philip Jermann"], + ["P_PRYCIAK", "P.Pryciak"], + ["LINDA_HICKE", "Linda Hicke"], + ["RZPD", "RZPD"], + ["OPENBIO", "OpenBio"], + ["F_POSAS", "F. Posas"], + ["HAPLOID_COLLECTION", "Haploid collection"], + ["MIRIAM_BORTFELD", "Miriam Bortfeld"], + ["EUROSCARF", "Euroscarf"], + ["TS_COLLECTION", "ts collection"], + ["CONZELMANN_LAB", "Conzelmann lab"], + ["SEBASTIAN_LEIDEL", "Sebastian Leidel"], + ["ANNA_DEPLAZES", "Anna Deplazes"], + ["BIBOU", "Bibou"], + ["MARC_SOHRMANN", "Marc sohrmann"] + ], + "SELECTION_YEAST" : [ + ["NONE", "None"], + ["URA", "Ura"], + ["LEU", "Leu"], + ["TRP", "Trp"], + ["HIS", "His"], + ["VIABILITY", "Viability"], + ["NAT", "nat"], + ["KAN", "kan"], + ["KAN_NAT", "kan + nat"], + ["HIS_KAN", "HIS + kan"], + ["HIS_KAN_NAT", "HIS + kan + nat"], + ["HIS", "HIS"], + ["LEU_NAT", "leu + nat"], + ["ADE2", "ade2"] + ], + "DERIVATION" : [ + ["GAMMA_INTEG", "gamma integ"], + ["DELTA_INTEG", "� integ"], + ["5FAO_LOOPOUT", "5-FAO loopout"], + ["PLASMID_SHUFFLE", "plasmid shuffle"], + ["TETRAD", "tetrad"], + ["LOOP-IN_LOOP-OUT", "loop-in/loop-out"], + ["GALPHO", "GalpHO mating type switch"], + ["DELETION", "Deletion"], + ["INTEGRATION", "Integration"] + ], + "STRAIN_BACKGROUND" : [ + ["W303", "W303"], + ["K699", "K699"], + ["K700", "K700"], + ["S288C", "S288C"], + ["1278", "*1278*"], + ["EG123", "EG123"], + ["DF5", "DF5"], + ["SIGMA", "Sigma"], + ["UNKNOWN", "Don't know"], + ["BY7092", "BY7092"], + ["BY5565", "BY5565"], + ["BY4741", "BY4741"] + ], + "CIR" : [ + ["CIR_PLUS", "cir+"], + ["CIR_DEG", "cir�"], + ], + "GAL" : [ + ["PLUS", "Plus"], + ["PLUS_PLUS", "Plus/Plus"], + ["GAL1", "gal1"], + ["GAL1_GAL1", "gal1/gal1"], + ["GAL2", "gal2"], + ["GAL2_GAL2", "gal2/gal2"], + ], + "MAT" : [ + ["AT", "@"], + ["A", "a"], + ["ALPHA", "alpha"], + ["DIPLOID", "diploid"], + ["UNKNOWN", "unknown"] + ], + "OLIGO_ORGANISM" : [ + ["BMV", "BMV"], + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["XENOPUS", "xenopus"], + ["DROSOPHILA", "drosophila"], + ["YEAST", "yeast"], + ["ECOLI", "E.coli"], + ["SYNTHETIC", "synthetic"], + ["HIV1", "HIV-1"], + ["CELEGANS", "C.elegans"], + ["MYCOPLASMA", "mycoplasma"] + ], + "OLIGO_GRADE" : [ + ["DESALTED", "desalted"], + ["HPLC", "hplc"], + ["PURITY", "purity"], + ["UNKNOWN", "?"] + ], + "PRIMER_POSITION" : [ + ["FORWARD", "forward"], + ["REVERSE", "reverse"] + ], + "OLIGO_COMPANY" : [ + ["MWG", "MWG"], + ["BIG", "BIG"], + ["PHARMACIA", "Pharmacia"], + ["IGLOI", "Igloi"], + ["INVITROGEN", "invitrogen"], + ["MICROSYNTH", "microsynth"] + ], + "OLIGO_USAGE" : [ + ["PCR", "pcr"], + ["SEQUENCING", "sequencing"], + ["HYBRIDIZE", "hybridize"], + ["MUTAGENESIS", "mutagenesis"], + ["RT-PCR", "Real-Time PCR"] + ], + "RESTRICTION" : [ + ["AATII", "AatII"], + ["ACCI", "AccI"], + ["ACII", "AciI"], + ["AFLII", "AflII"], + ["AFLIII", "AflIII"], + ["AGEI", "AgeI"], + ["ALUI", "AluI"], + ["ALWI", "AlwI"], + ["ALWNI", "AlwNI"], + ["APAI", "ApaI"], + ["APALI", "ApaLI"], + ["APOI", "ApoI"], + ["ASCI", "AscI"], + ["ASEI", "AseI"], + ["AVAI", "AvaI"], + ["AVAII", "AvaII"], + ["AVRII", "AvrII"], + ["BAMHI", "BamHI"], + ["BANI", "BanI"], + ["BANII", "BanII"], + ["BBSI", "BbsI"], + ["BBVI", "BbvI"], + ["BCGI-1", "BcgI-1"], + ["BCGI-2", "BcgI-2"], + ["BCLI", "BclI"], + ["BFAI", "BfaI"], + ["BGLI", "BglI"], + ["BGLII", "BglII"], + ["BLPI", "BlpI"], + ["BPMI", "BpmI"], + ["BSAAI", "BsaAI"], + ["BSABI", "BsaBI"], + ["BSAHI", "BsaHI"], + ["BSAI", "BsaI"], + ["BSAJI", "BsaJI"], + ["BSAWI", "BsaWI"], + ["BSERI", "BseRI"], + ["BSGI", "BsgI"], + ["BSIEI", "BsiEI"], + ["BSIHKAI", "BsiHKAI"], + ["BSIWI", "BsiWI"], + ["BSLI", "BslI"], + ["BSMAI", "BsmAI"], + ["BSMBI", "BsmBI"], + ["BSMFI", "BsmFI"], + ["BSMI", "BsmI"], + ["BSOFI", "BsoFI"], + ["BSP1286I", "Bsp1286I"], + ["BSPEI", "BspEI"], + ["BSPHI", "BspHI"], + ["BSPMI", "BspMI"], + ["BSRBI", "BsrBI"], + ["BSRDI", "BsrDI"], + ["BSRFI", "BsrFI"], + ["BSRGI", "BsrGI"], + ["BSRI", "BsrI"], + ["BSSHII", "BssHII"], + ["BST1107I", "Bst1107I"], + ["BSTBI", "BstBI"], + ["BSTEII", "BstEII"], + ["BSTNI", "BstNI"], + ["BSTUI", "BstUI"], + ["BSTXI", "BstXI"], + ["BSTYI", "BstYI"], + ["BSU36I", "Bsu36I"], + ["CAC8I", "Cac8I"], + ["CLAI", "ClaI"], + ["CVIJI", "CviJI"], + ["DDEI", "DdeI"], + ["DPNI", "DpnI"], + ["DRAI", "DraI"], + ["DRAIII", "DraIII"], + ["DRDI", "DrdI"], + ["DSAI", "DsaI"], + ["EAEI", "EaeI"], + ["EAGI", "EagI"], + ["EAM1105I", "Eam1105I"], + ["EARI", "EarI"], + ["ECO47III", "Eco47III"], + ["ECO57I", "Eco57I"], + ["ECONI", "EcoNI"], + ["ECOO109I", "EcoO109I"], + ["ECORI", "EcoRI"], + ["ECORV", "EcoRV"], + ["FOKI", "FokI"], + ["FSEI", "FseI"], + ["FSPI", "FspI"], + ["HAEII", "HaeII"], + ["HAEIII", "HaeIII"], + ["HGAI", "HgaI"], + ["HHAI", "HhaI"], + ["HINCII", "HincII"], + ["HINDIII", "HindIII"], + ["HINFI", "HinfI"], + ["HPAI", "HpaI"], + ["HPAII", "HpaII"], + ["HPHI", "HphI"], + ["KPNI", "KpnI"], + ["MAEII", "MaeII"], + ["MAEIII", "MaeIII"], + ["MBOI", "MboI"], + ["MBOII", "MboII"], + ["MLUI", "MluI"], + ["MNLI", "MnlI"], + ["MSCI", "MscI"], + ["MSEI", "MseI"], + ["MSLI", "MslI"], + ["MSPA1I", "MspA1I"], + ["MUNI", "MunI"], + ["MWOI", "MwoI"], + ["NAEI", "NaeI"], + ["NARI", "NarI"], + ["NCII", "NciI"], + ["NCOI", "NcoI"], + ["NDEI", "NdeI"], + ["NHEI", "NheI"], + ["NLAIII", "NlaIII"], + ["NLAIV", "NlaIV"], + ["NOTI", "NotI"], + ["NRUI", "NruI"], + ["NSII", "NsiI"], + ["NSPI", "NspI"], + ["PACI", "PacI"], + ["PFLMI", "PflMI"], + ["PLEI", "PleI"], + ["PMEI", "PmeI"], + ["PMLI", "PmlI"], + ["PPUMI", "PpuMI"], + ["PSHAI", "PshAI"], + ["PSP1406I", "Psp1406I"], + ["PSTI", "PstI"], + ["PVUI", "PvuI"], + ["PVUII", "PvuII"], + ["RSAI", "RsaI"], + ["RSRII", "RsrII"], + ["SACI", "SacI"], + ["SACII", "SacII"], + ["SALI", "SalI"], + ["SAPI", "SapI"], + ["SAU96I", "Sau96I"], + ["SCAI", "ScaI"], + ["SCRFI", "ScrFI"], + ["SEXAI", "SexAI"], + ["SFANI", "SfaNI"], + ["SFCI", "SfcI"], + ["SFII", "SfiI"], + ["SGFI", "SgfI"], + ["SGRAI", "SgrAI"], + ["SMAI", "SmaI"], + ["SNABI", "SnaBI"], + ["SPEI", "SpeI"], + ["SPHI", "SphI"], + ["SRFI", "SrfI"], + ["SSE8387I", "Sse8387I"], + ["SSPI", "SspI"], + ["STUI", "StuI"], + ["STYI", "StyI"], + ["SWAI", "SwaI"], + ["TAQI", "TaqI"], + ["TFII", "TfiI"], + ["TSP45I", "Tsp45I"], + ["TSP509I", "Tsp509I"], + ["TTH111I", "Tth111I"], + ["XBAI", "XbaI"], + ["XCMI", "XcmI"], + ["XHOI", "XhoI"], + ["XMNI", "XmnI"], + ["SACI_NHEI", "sacI NheI"], + ["XMAI", "XmaI"], + ["BAMHI", "BamHI"], + ["CLAI", "ClaI"], + ["PACI", "PacI"], + ["NOTI", "NotI"], + ["SALI", "SalI"], + ["XHOI", "XhoI"], + ["NONE", "none"] + ], + "BACKBONE" : [ + ["PCDNA3", "pCDNA3"], + ["PABES-NEO2000", "pABES-neo 2000"], + ["PUC19", "pUC 19"], + ["PMX-1", "pMX-1"], + ["PRMHA-3", "pRmHa-3"] + ], + "BACTERIAL_HOST" : [ + ["DH10B", "DH10B"], + ["JM110", "JM110"], + ["BL21", "BL21"], + ["DH5A", "DH5a"], + ["PB3", "PB3"], + ["DB31", "DB3.1"], + ["CCDB_SURVIVAL", "ccdB survival"] + ], + "BIOSAFETY_LEVEL" : [ + ["S1", "S1"], + ["S2", "S2"], + ["S3", "S3"] + ], + "SELECTION_IN_BACTERIA" : [ + ["AMPICILLIN", "Ampicillin"], + ["KANAMYCIN", "Kanamycin"], + ["SPECTINOMCIN", "Spectinomcin"], + ["UNKNOWN", "Unknown"] + ], + "SELECTION_IN_EUKARYOTES" : [ + ["G418_NEO", "G418/neo"], + ["MPA", "MPA"], + ["HYGROMYCIN", "Hygromycin"] + ], + "SOURCE_OF_REPLICON" : [ + ["CMV", "CMV"] + ], + "PLASMID_ORGANISM" : [ + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["XENOPUS", "xenopus"], + ["DROSOPHILA", "drosophila"], + ["YEAST", "yeast"], + ["ECOLI", "E.coli"], + ["SYNTHETIC", "synthetic"] + ], + "PROMOTER" : [ + ["ENDOGENOUS", "endogenous"], + ["GAL1", "gal1"], + ["GALL", "galL"], + ["GALS", "galS"], + ["TET", "tet"], + ["ADH", "adh"], + ["CYC", "cyc"], + ["GPD", "gpd"], + ["DASH", "\"-\""], + ["CMV", "cmv"], + ["SV40", "SV40"], + ["TET_ON", "tet on"], + ["TET_OFF", "tet off"], + ["RIM1", "rim1"] + ], + "EXON_OR_THREE_PRIME" : [ + ["EXON", "exon"], + ["3P", "3'"], + ["5P", "5'"] + ], + "SIRNA_SPECIES" : [ + ["HUMAN", "Human"], + ["MOUSE", "Mouse'"], + ], + "SIRNA_COMPANY" : [ + ["AMBION", "Ambion"], + ["DHARMACON", "Dharmacon'"], + ["INVITORGEN", "Invitrogen'"], + ["MICROSYNTH", "Microsynth'"], + ["QIAGEN", "Qiagen'"], + ["GIFT", "Gift'"] + ], + "SIRNA_FREEZER_LOCATION" : [ + ["BIGLABFREEZER", "BigLab freezer"], + ["SMALLLAB_BIGFREEZER", "SmallLab Big freezer'"], + ["FREEZER_G17", "Freezer G17'"], + ["G93-FRANK", "G9.3--Frank'"], + ["FREEZER-G17_BOX_NATHALIE", "Freezer G17 Box Nathalie'"], + ["BOX-THIBAULT-BIGFREEZER-SMALLLAB", "Box thibault Big freezer small lab'"], + ["BOX-NATHALIE", "Box Nathalie'"] + ], + "TRANSFECTION_AGENT" : [ + ["FUGENE", "Fugene"], + ["LIPOFECTAMINE", "Lipofectamine'"], + ["OLIGOFECTAMINE", "Oligofectamine'"], + ["RNAIMAX", "RNAimax'"] + ], + "FREEZER" : [ + ["G9_FRIDGE-1", "G9 Fridge 1"], + ["G9_FRIDGE-2", "G9 Fridge 2"], + ["G9_FREEZER-A", "-20C Small Peter Lab"], + ["G9_FREEZER-B", "G9 Freezer B"], + ["G9_FREEZER-C", "G9 Freezer C"], + ["G10_FREEZER-D", "G10 Freezer D"], + ["G10_FREEZER-E", "G10 Freezer E"], + ["G10_FREEZER-F", "G10 Freezer F"], + ["G10_FREEZER-G", "G10 Freezer G"], + ["G10_FREEZER-H", "G10 Freezer H"], + ["G10_FREEZER-I", "G10 Freezer I"], + ["G10_FRIDGE-3", "+4C Big Peter Lab"], + ["G10_FRIDGE-4", "G10 Fridge 4"], + ["G10_FRIDGE-5", "G10 Fridge 5"], + ["G10_FRIDGE-6", "G10 Fridge 6"], + ["G10_FRIDGE-7", "G10 Fridge 7"], + ["G11_FRIDGE-8", "G10 Fridge 8"], + ["G14_FREEZER-J", "G14 Freezer J"], + ["G14_FREEZER-K", "G14 Freezer K"], + ["G14_FREEZER-L", "G14 Freezer L"], + ["G14_FREEZER-M", "G14 Freezer M"], + ["G14_FRIDGE-9", "G14 Fridge 9"], + ["G14_FRIDGE-10", "G14 Fridge 10"], + ["G17_FRIDGE-11", "G17 Fridge 11"], + ["G17_FRIDGE-12", "G17 Fridge 12"], + ["G17_FREEZER-N", "G17 Freezer N"], + ["USER_BENCH-20", "Bench -20�C"], + ["USER_BENCH-80", "Bench -80�C"], + ["USER_BENCH-RT", "Bench RT"], + ["USER_BENCH", "Bench"] + ], + "STORAGE_BOX_SIZE" : [ + ["9X9", "9 x 9 box"], + ["5X5", "5 x 5 box"], + ["10X10", "10 x 10 box"], + ["10X12", "10 x 12 box"] + ], + } \ No newline at end of file diff --git a/plasmid/source/core-plugins/petermigration/2/as/initialize-master-data.py b/plasmid/source/core-plugins/petermigration/2/as/initialize-master-data.py new file mode 100644 index 0000000000000000000000000000000000000000..ddb26f48fbfb39bb26663af7e353b0a4a1d41efc --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/as/initialize-master-data.py @@ -0,0 +1,155 @@ +# +# Copyright 2014 ETH Zuerich, Scientific IT Services +# +# 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. +# + +# MasterDataRegistrationTransaction Class +import definitions +import definitionsVoc +import os +import copy +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType + +## +## Globals +## +vocabulariesCache = {}; +propertiesCache = {}; +samplesCache = {}; +tr = service.transaction() + +## +## API Facade +## +def createVocabularyWithTerms(vocabularyCode, terms): + vocabulary = tr.createNewVocabulary(vocabularyCode); + vocabulary.setChosenFromList(True); + addTerms(vocabulary, terms); + vocabulariesCache[vocabularyCode] = vocabulary; + +def addTerms(vocabulary, terms): + for term in terms: + addTermWithLabel(vocabulary, term[0], term[1]) + +def addTermWithLabel(vocabulary, termCode, termLabel): + newTerm = tr.createNewVocabularyTerm(termCode); + newTerm.setLabel(termLabel); + vocabulary.addTerm(newTerm); + +def createSampleTypeWithProperties(sampleTypeCode, description, properties): + newSampleType = tr.getOrCreateNewSampleType(sampleTypeCode); + newSampleType.setDescription(description); + newSampleType.setShowParents(True); + newSampleType.setAutoGeneratedCode(True); + newSampleType.setGeneratedCodePrefix(sampleTypeCode[:3]); + addProperties(newSampleType, properties); + samplesCache[sampleTypeCode] = newSampleType; + +def createDataSetTypeWithProperties(dataSetCode, kind, description, properties): + newDataSet = tr.getOrCreateNewDataSetType(dataSetCode); + newDataSet.setDataSetKind(kind); + newDataSet.setDescription(description); + addProperties(newDataSet, properties); + +def createExperimentTypeWithProperties(experimentTypeCode, description, properties): + newExperiment = tr.getOrCreateNewExperimentType(experimentTypeCode); + newExperiment.setDescription(description); + addProperties(newExperiment, properties); + +def addPropertiesToSamples(sampleTypeCodes, properties): + for sampleTypeCode in sampleTypeCodes: + sampleType = samplesCache[sampleTypeCode]; + if sampleType is None: + sampleType = tr.getSampleType(sampleType) + addProperties(sampleType, properties); + +def addProperties(entity, properties): + for property in properties: + addProperty(entity, property[0], property[1], property[2], property[3], property[4], property[5], property[6], property[7], property[8]); + +def addProperty(entity, propertyCode, section, propertyLabel, dataType, vocabularyCode, propertyDescription, managedScript, dynamicScript, isMandatory): + property = None; + + if propertyCode in propertiesCache: + property = propertiesCache[propertyCode]; + else: + property = createProperty(propertyCode, dataType, propertyLabel, propertyDescription, vocabularyCode); + + propertyAssignment = tr.assignPropertyType(entity, property); + propertyAssignment.setSection(section); + propertyAssignment.setMandatory(isMandatory); + if managedScript != None: + propertyAssignment.setManaged(True); + propertyAssignment.setShownEdit(True); + propertyAssignment.setScriptName(managedScript); + if dynamicScript != None: + propertyAssignment.setDynamic(True); + propertyAssignment.setShownEdit(True); + propertyAssignment.setScriptName(dynamicScript); + +def createProperty(propertyCode, dataType, propertyLabel, propertyDescription, vocabularyCode): + property = tr.getOrCreateNewPropertyType(propertyCode, dataType); + property.setDescription(propertyDescription); + property.setLabel(propertyLabel); + propertiesCache[propertyCode] = property; + if dataType == DataType.CONTROLLEDVOCABULARY: + property.setVocabulary(vocabulariesCache[vocabularyCode]); + return property; + +def addStorageGroups(numGroups, sampleType): + for storageIdx in range(1,(numGroups + 1)): + storageGroup = definitions.getStorageGroupDefinition(); + for property in storageGroup: + property[0] = property[0] + "_" + str(storageIdx); + property[1] = property[1] + "_" + str(storageIdx); + property[5] = property[5] + "_" + str(storageIdx); + addPropertiesToSamples([sampleType], storageGroup); + +def addBoxSizeProperty(numGroups, sampleType): + for storageIdx in range(1,(numGroups + 1)): + property = ["STORAGE_BOX_SIZE", "Physical Storage", "box size", DataType.CONTROLLEDVOCABULARY, "STORAGE_BOX_SIZE", "Storage Box size", None, None, False]; + property[0] = property[0] + "_" + str(storageIdx); + property[1] = property[1] + "_" + str(storageIdx); + property[5] = property[5] + "_" + str(storageIdx); + addPropertiesToSamples([sampleType], storageGroup); + +#Valid Script Types: DYNAMIC_PROPERTY, MANAGED_PROPERTY, ENTITY_VALIDATION +def createScript(path, name, description, scriptType, entityType): + scriptAsString = open(path, 'r').read(); + script = tr.getOrCreateNewScript(name); + script.setName(name); + script.setDescription(description); + script.setScript(scriptAsString); + script.setScriptType(scriptType); + script.setEntityForScript(entityType); + return script; + +## +## Vocabulary Types +## +createVocabularyWithTerms("STORAGE_BOX_SIZE", [ + ["9X9", "9 x 9 box"], + ["5X5", "5 x 5 box"], + ["10X10", "10 x 10 box"], + ["10X12", "10 x 12 box"] + ]); + +## +## New Position Property +## +addBoxSizeProperty(definitions.numberOfStorageGroups, "ANTIBODY"); +addBoxSizeProperty(definitions.numberOfStorageGroups, "CELL"); +addBoxSizeProperty(definitions.numberOfStorageGroups, "STRAIN"); +addBoxSizeProperty(definitions.numberOfStorageGroups, "PLASMID"); +addBoxSizeProperty(definitions.numberOfStorageGroups, "OLIGO"); diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitions.py b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitions.py new file mode 100644 index 0000000000000000000000000000000000000000..6cf0d515317babb43e8d21a5145016ef89930064 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitions.py @@ -0,0 +1,375 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType + +# +# Helper Methods +# +def getPropertyDefinitionByCode(definition, code): + for property in definition: + if property[0] == code: + return property + return None + +# +# Scripts +# +commentsScriptName = "COMMENTS"; +adenosineScriptName = "ADENOSINE_COUNT" +cytosineScriptName= "CYTOSINE_COUNT" +gcScriptName= "GC" +guanosineScriptName= "GUANOSINE_COUNT" +lengthScriptName= "SEQUENCE_LENGTH" +nucelotideScriptName= "ONUCLEOTIDE_COUNT" +thymidineScriptName= "THYMIDINE_COUNT" +tmScriptName= "TM" + +# +# Storage +# +numberOfStorageGroups = 65 + +def getStorageGroupPropertyCodes(): + propertyCodes = []; + for property in getStorageGroupDefinition(): + propertyCodes.append(property[0]); + return propertyCodes; + +def getStorageGroupDefinition(): + return [ + ["STORAGE_NAME", "Physical Storage", "location", DataType.CONTROLLEDVOCABULARY, "FREEZER", "Storage Name", None, None, False], + ["STORAGE_ROW", "Physical Storage", "Storage Row", DataType.INTEGER, None, "Storage Row", None, None, False], + ["STORAGE_COLUMN", "Physical Storage", "Storage Column", DataType.INTEGER, None, "Storage Column", None, None, False], + ["STORAGE_BOX_NAME", "Physical Storage", "box label", DataType.VARCHAR, None, "Storage Box Name", None, None, False], + ["STORAGE_BOX_SIZE", "Physical Storage", "box size", DataType.CONTROLLEDVOCABULARY, "STORAGE_BOX_SIZE", "Storage Box size", None, None, False], + ["STORAGE_USER", "Physical Storage", "frozen by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "Storage User Id", None, None, False], + ["STORAGE_BOX_POSITION", "Physical Storage", "position", DataType.VARCHAR, None, "Storage Box Position", None, None, False] +]; + +# +# Experiment Types +# +experimentDefinition = [ + ["NAME", "General", "Name", DataType.VARCHAR, None, "Name", None, None, False], + ["EXPERIMENTAL_GOALS", "General", "Experimental goals", DataType.MULTILINE_VARCHAR, None, "Goal of the experiment", None, None, False], + ["GRANT", "General", "Grant", DataType.VARCHAR, None, "grant name", None, None, False], + ["START_DATE", "General", "Start Date", DataType.TIMESTAMP, None, "Start Date", None, None, False], + ["END_DATE", "General", "End Date", DataType.TIMESTAMP, None, "End Date", None, None, False], + ["EXPERIMENTAL_RESULTS", "General", "Experimental results", DataType.MULTILINE_VARCHAR, None, "Brief summary of the results obtained", None, None, False], + ["XMLCOMMENTS", "Comments","Comments List", DataType.XML, None, "Several comments can be added by different users", commentsScriptName, None, False] +]; + +# +# Sample Types +# +antibodyDefinition = [ + ["NAME", "General", "antibody ID", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_ID_NR", "General", "antibody_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["ANTIGEN", "General", "antigen", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_FACS_BLOCK", "General", "block facs", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["ANTIBODY_IF_BLOCK", "General", "block IFF", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["ANTIBODY_WB_BLOCK", "General", "block western", DataType.CONTROLLEDVOCABULARY, "BLOCK", "", None, None, False], + ["CATALOGUE_NUMBER", "General", "catalog id #", DataType.VARCHAR, None, "", None, None, False], + ["CLASS", "General", "class", DataType.CONTROLLEDVOCABULARY, "CLASS", "", None, None, False], + ["CLONE", "General", "clone", DataType.VARCHAR, None, "", None, None, False], + ["COMPANY", "General", "company", DataType.CONTROLLEDVOCABULARY, "COMPANY", "", None, None, False], + ["ANTIBODY_FACS_CONC", "General", "conc facs", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_FACS", "", None, None, False], + ["ANTIBODY_IF_CONC", "General", "conc IFF", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_FACS", "", None, None, False], + ["ANTIBODY_IP_CONC", "General", "conc ip", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_IP", "", None, None, False], + ["ANTIBODY_WB_CONC", "General", "conc western", DataType.CONTROLLEDVOCABULARY, "CONCENTRATION_WESTERN", "", None, None, False], + ["ANTIBODY_CONCENTRATION", "General", "concentration", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_CROSSREACTIVITY", "General", "crossreactivity", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_FACS_FIX", "General", "fix facs", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["ANTIBODY_IF_FIX", "General", "fix IFF", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["ANTIBODY_WB_FIX", "General", "fix western", DataType.CONTROLLEDVOCABULARY, "FIX", "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LABEL", "General", "label", DataType.CONTROLLEDVOCABULARY, "LABEL", "", None, None, False], + ["LOTNUMBER", "General", "lotnumber", DataType.VARCHAR, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MONO_POLYCLONAL", "General", "mono/polyclonal", DataType.CONTROLLEDVOCABULARY, "MONO-POLYCLONAL", "", None, None, False], + ["ANTIBODY_FACS_NOTES", "General", "notes FACS", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_IF_NOTES", "General", "notes IFF", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_IP_NOTES", "General", "notes IP", DataType.VARCHAR, None, "", None, None, False], + ["ANTIBODY_WB_NOTES", "General", "notes western", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["ANTIGEN_SIZE", "General", "size", DataType.VARCHAR, None, "", None, None, False], + ["SOURCE", "General", "source", DataType.CONTROLLEDVOCABULARY, "SOURCE", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["BOX", "Storage", "box", DataType.VARCHAR, None, "", None, None, False], + ["RACK", "Storage", "rack", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "reference", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "Comments", "info", DataType.VARCHAR, None, "", None, None, False] +]; + +cellDefinition = [ + ["CO2", "General", "%CO2", DataType.CONTROLLEDVOCABULARY, "CO2", "", None, None, False], + ["ATCC_NUM", "General", "ATCC No.", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_NR", "General", "cell_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_NR_COPY", "General", "cell_id_nr Copy", DataType.VARCHAR, None, "", None, None, False], + ["NAME", "General", "cell ID", DataType.VARCHAR, None, "", None, None, False], + ["CELL_ID_COPY", "General", "cell ID Copy", DataType.VARCHAR, None, "", None, None, False], + ["CLONE", "General", "clone #", DataType.INTEGER, None, "", None, None, False], + ["COMPARE_FIELD", "General", "compare field", DataType.VARCHAR, None, "", None, None, False], + ["CONC1", "General", "conc.1", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT1", "General", "concentration unit 1", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC2", "General", "conc.2", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT2", "General", "concentration unit 2", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC3", "General", "conc.3", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT3", "General", "concentration unit 3", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC4", "General", "conc.4", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT4", "General", "concentration unit 4", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.TIMESTAMP, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GROWTH_TEMPERATURE", "General", "growth temperature", DataType.CONTROLLEDVOCABULARY, "GROWTH_TEMPERATURE", "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LINE_NAME", "General", "line name", DataType.VARCHAR, None, "", None, None, False], + ["MEDIUM", "General", "medium", DataType.CONTROLLEDVOCABULARY, "MEDIUM", "", None, None, False], + ["MEDIUM_SPECIALS", "General", "medium specials", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MYCOPLASM_TESTED", "General", "mycoplasm_tested", DataType.BOOLEAN, None, "", None, None, False], + ["OBTAINED_FROM", "General", "obtained from", DataType.CONTROLLEDVOCABULARY, "CELL_OBTAINED_FROM", "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PARENTAL_CELL", "General", "parental cell", DataType.VARCHAR, None, "", None, None, False], + ["PASSAGE", "General", "passage", DataType.VARCHAR, None, "", None, None, False], + ["PERS_CELL_NUMBER", "General", "PersCellNumber", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID1", "General", "plasmid ID 1", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID2", "General", "plasmid ID 2", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION_PLASMID1", "General", "sel.1", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID2", "General", "sel.2", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID3", "General", "sel.3", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SELECTION_PLASMID4", "General", "sel.4", DataType.CONTROLLEDVOCABULARY, "SELECTION", "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "CELL_SPECIES", "", None, None, False], + ["VIRUS_ID1", "General", "virus ID 1", DataType.VARCHAR, None, "", None, None, False], + ["VIRUS_ID2", "General", "virus ID 2", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "reference", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "Comments", "info", DataType.VARCHAR, None, "", None, None, False] +]; + +strainDefinition = [ + ["CO2", "General", "%CO2", DataType.CONTROLLEDVOCABULARY, "CO2", "", None, None, False], + ["BACKGROUND", "General", "background", DataType.CONTROLLEDVOCABULARY, "STRAIN_BACKGROUND", "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["CIR", "General", "cir", DataType.CONTROLLEDVOCABULARY, "CIR", "", None, None, False], + ["CONC_INDUCER1", "General", "conc. inducer 1", DataType.VARCHAR, None, "", None, None, False], + ["CONC_INDUCER2", "General", "conc. inducer 2", DataType.VARCHAR, None, "", None, None, False], + ["CONC_INDUCER3", "General", "conc. inducer 3", DataType.VARCHAR, None, "", None, None, False], + ["CONC1", "General", "conc.1", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT1", "General", "concentration unit 1", DataType.VARCHAR, None, "", None, None, False], + ["CONC2", "General", "conc.2", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT2", "General", "concentration unit 2", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONC3", "General", "conc.3", DataType.REAL, None, "", None, None, False], + ["CONC_UNIT3", "General", "concentration unit 3", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["DERIVATION", "General", "derivation", DataType.CONTROLLEDVOCABULARY, "DERIVATION", "", None, None, False], + ["EXPRESSED_PROTEIN1", "General", "expressed protein 1", DataType.VARCHAR, None, "", None, None, False], + ["EXPRESSED_PROTEIN2", "General", "expressed protein 2", DataType.VARCHAR, None, "", None, None, False], + ["EXPRESSED_PROTEIN3", "General", "expressed protein 3", DataType.VARCHAR, None, "", None, None, False], + ["FREE_PLASMID", "General", "freeplasmid", DataType.VARCHAR, None, "", None, None, False], + ["FREEZEDATE", "General", "freezedate", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GAL", "General", "gal", DataType.CONTROLLEDVOCABULARY, "GAL", "", None, None, False], + ["GENE_EXPRESSION1", "General", "gene expression 1", DataType.VARCHAR, None, "", None, None, False], + ["GENE_EXPRESSION2", "General", "gene expression 2", DataType.VARCHAR, None, "", None, None, False], + ["GROWTH_TEMPERATURE", "General", "growth temperature", DataType.CONTROLLEDVOCABULARY, "GROWTH_TEMPERATURE", "", None, None, False], + ["INDUCER1", "General", "inducer 1", DataType.VARCHAR, None, "", None, None, False], + ["INDUCER2", "General", "inducer 2", DataType.VARCHAR, None, "", None, None, False], + ["INDUCER3", "General", "inducer 3", DataType.VARCHAR, None, "", None, None, False], + ["COMMENTS", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MARKERS", "General", "markers", DataType.VARCHAR, None, "", None, None, False], + ["MAT", "General", "mat", DataType.CONTROLLEDVOCABULARY, "MAT", "", None, None, False], + ["MEDIUM", "General", "medium", DataType.CONTROLLEDVOCABULARY, "MEDIUM", "", None, None, False], + ["MEDIUM_SPECIALS", "General", "medium specials", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["NUMBER", "General", "number", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_OBTAINED_FROM", "General", "obtained from", DataType.VARCHAR, None, "", None, None, False], + ["ORF", "General", "orf", DataType.VARCHAR, None, "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PARENTAL_CELL", "General", "parental cell", DataType.VARCHAR, None, "", None, None, False], + ["PASSAGE", "General", "passage", DataType.VARCHAR, None, "", None, None, False], + ["PERSYEASTNUMBER", "General", "persyeastnumber", DataType.INTEGER, None, "", None, None, False], + ["PETERYEASTNUMBER", "General", "peteryeastnumber", DataType.INTEGER, None, "", None, None, False], + ["PLASMID_ID1", "General", "plasmid ID 1", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID2", "General", "plasmid ID 2", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID3", "General", "plasmid ID 3", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER1", "General", "promoter 1", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER2", "General", "promoter 2", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER3", "General", "promoter 3", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "General", "reference", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION1", "General", "sel.1", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION2", "General", "sel.2", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION3", "General", "sel.3", DataType.VARCHAR, None, "", None, None, False], + ["SELECTION", "General", "selection", DataType.CONTROLLEDVOCABULARY, "SELECTION_YEAST", "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["STRAIN_SOURCE", "General", "source", DataType.CONTROLLEDVOCABULARY, "STRAIN_SOURCE", "", None, None, False], + ["SPECIES", "General", "species", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_ID_NR", "General", "strain_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["NAME", "General", "strain ID", DataType.VARCHAR, None, "", None, None, False], + ["STRAIN_NAME", "General", "strain name", DataType.VARCHAR, None, "", None, None, False] +]; + +oligoDefinition = [ + ["AMOUNT", "General", "amount", DataType.REAL, None, "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_COMPANY", "General", "company", DataType.CONTROLLEDVOCABULARY, "OLIGO_COMPANY", "", None, None, False], + ["CONCENTRATION", "General", "concentration", DataType.REAL, None, "", None, None, False], + ["CONCENTRATION_UNIT", "General", "concentration unit", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["GENE_LOCUS", "General", "gene locus", DataType.VARCHAR, None, "", None, None, False], + ["GRADE", "General", "grade", DataType.CONTROLLEDVOCABULARY, "OLIGO_GRADE", "", None, None, False], + ["COMMENTS", "General", "Info", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["OD", "General", "od", DataType.INTEGER, None, "", None, None, False], + ["NAME", "General", "oligo ID", DataType.INTEGER, None, "", None, None, False], + ["OLIGO_ID_NR", "General", "oligo_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["ORDER_DATE", "General", "order date", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_ORGANISM", "General", "organism", DataType.CONTROLLEDVOCABULARY, "OLIGO_ORGANISM", "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PRIMER_PARTNER", "General", "primer partner", DataType.VARCHAR, None, "", None, None, False], + ["PRIMER_POSITION", "General", "primer position", DataType.CONTROLLEDVOCABULARY, "PRIMER_POSITION", "", None, None, False], + ["PUBLISHED_IN", "General", "PublishedIn", DataType.VARCHAR, None, "", None, None, False], + ["RESTRICTION_SITE", "General", "restriction site", DataType.CONTROLLEDVOCABULARY, "RESTRICTION", "", None, None, False], + ["SEQUENCE", "General", "sequence", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.VARCHAR, None, "", None, None, False], + ["USAGE", "General", "usage", DataType.CONTROLLEDVOCABULARY, "OLIGO_USAGE", "", None, None, False], + ["ADENOSINE", "Calculated fields", "adenosine", DataType.INTEGER, None, "", adenosineScriptName, None, False], + ["CYTOSINE", "Calculated fields", "cytosine", DataType.INTEGER, None, "", cytosineScriptName, None, False], + ["GUANOSINE", "Calculated fields", "guanosine", DataType.INTEGER, None, "", guanosineScriptName, None, False], + ["THYMIDINE", "Calculated fields", "thymidine", DataType.INTEGER, None, "", thymidineScriptName, None, False], + ["LENGTH", "Calculated fields", "length", DataType.INTEGER, None, "", lengthScriptName, None, False], + ["GC", "Calculated fields", "gc", DataType.REAL, None, "", gcScriptName, None, False], + ["TM", "Calculated fields", "tm", DataType.REAL, None, "", tmScriptName, None, False], + ["O_NUCLEOTIDE", "Calculated fields", "O nucleotide", DataType.INTEGER, None, "", nucelotideScriptName, None, False] +]; + +plasmidDefinition = [ + ["BACKBONE", "General", "backbone", DataType.CONTROLLEDVOCABULARY, "BACKBONE", "", None, None, False], + ["BACKUP_STORAGE", "General", "backup storage", DataType.VARCHAR, None, "", None, None, False], + ["BACTERIAL_HOST", "General", "bacterial host", DataType.CONTROLLEDVOCABULARY, "BACTERIAL_HOST", "", None, None, False], + ["BARCODE", "General", "barcode", DataType.VARCHAR, None, "", None, None, False], + ["BARCODE_LABEL", "General", "barcode label", DataType.VARCHAR, None, "", None, None, False], + ["BIOSAFETY_LEVEL", "General", "biosafety level", DataType.CONTROLLEDVOCABULARY, "BIOSAFETY_LEVEL", "", None, None, False], + ["BOXNR", "General", "boxNr", DataType.VARCHAR, None, "", None, None, False], + ["CONCENTRATION_UNIT", "General", "concentration unit", DataType.CONTROLLEDVOCABULARY, "CONC_UNITS", "", None, None, False], + ["CONSTRUCTION_METHOD", "General", "construction method", DataType.VARCHAR, None, "", None, None, False], + ["CREATION_DATE", "General", "creation date", DataType.TIMESTAMP, None, "", None, None, False], + ["CTERMTAG", "General", "Ctermtag", DataType.VARCHAR, None, "", None, None, False], + ["DATE", "General", "date", DataType.VARCHAR, None, "", None, None, False], + ["DATE_OF_CONSTRUCTION", "General", "date of construction", DataType.TIMESTAMP, None, "", None, None, False], + ["DERIVATIVE_OF", "General", "Derivative of", DataType.VARCHAR, None, "", None, None, False], + ["ECOLI_STRAIN", "General", "E.coli strain", DataType.VARCHAR, None, "", None, None, False], + ["EXCISE_INSERT", "General", "excise insert", DataType.VARCHAR, None, "", None, None, False], + ["EXCISE_INSERT2", "General", "excise insert 2", DataType.VARCHAR, None, "", None, None, False], + ["FREEZEDATE", "General", "freezedate", DataType.VARCHAR, None, "", None, None, False], + ["FROZEN", "General", "frozen", DataType.TIMESTAMP, None, "", None, None, False], + ["FUNCTIONAL_ELEMENTS_INSERT", "General", "functional elements insert", DataType.VARCHAR, None, "", None, None, False], + ["HYPERCARD_FILE", "General", "hypercard file", DataType.VARCHAR, None, "", None, None, False], + ["INFO", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["INSERT", "General", "insert", DataType.VARCHAR, None, "", None, None, False], + ["INSERTION_SITE", "General", "insertion site", DataType.VARCHAR, None, "", None, None, False], + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["LINEARIZE", "General", "linearize", DataType.VARCHAR, None, "", None, None, False], + ["MARKER", "General", "Marker", DataType.VARCHAR, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "modification date", DataType.VARCHAR, None, "", None, None, False], + ["MODIFIED_BY", "General", "modified by", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["NAME_OF_PARENTAL_CLONE", "General", "name of parental clone", DataType.VARCHAR, None, "", None, None, False], + ["NAME_OF_VECTOR", "General", "name of vector", DataType.VARCHAR, None, "", None, None, False], + ["NTERMTAG", "General", "Ntermtag", DataType.VARCHAR, None, "", None, None, False], + ["NUCLEOTIDE_SEQUENCE", "General", "nucleotide sequence", DataType.VARCHAR, None, "", None, None, False], + ["OLIGOS_USED", "General", "oligos used", DataType.VARCHAR, None, "", None, None, False], + ["ORGANISM", "General", "organism", DataType.VARCHAR, None, "", None, None, False], + ["ORIGIN_OF_REPLICATION", "General", "origin of replication", DataType.VARCHAR, None, "", None, None, False], + ["OTHER_MARKER", "General", "other marker", DataType.VARCHAR, None, "", None, None, False], + ["PAGE_NUMBER", "General", "page number", DataType.VARCHAR, None, "", None, None, False], + ["PERSPLASMIDNUM", "General", "persPlasmidnum", DataType.REAL, None, "", None, None, False], + ["PETERPLASMIDNUM", "General", "PeterPlasmidNum", DataType.INTEGER, None, "", None, None, False], + ["NAME", "General", "plasmid ID", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_ID_NR", "General", "plasmid_id_nr", DataType.VARCHAR, None, "", None, None, False], + ["PLASMIDNAME", "General", "plasmidname", DataType.VARCHAR, None, "", None, None, False], + ["PRIMERS", "General", "primers", DataType.VARCHAR, None, "", None, None, False], + ["PROMOTER", "General", "promoter", DataType.CONTROLLEDVOCABULARY, "PROMOTER", "", None, None, False], + ["SELECTION_IN_BACTERIA", "General", "selection in bacteria", DataType.CONTROLLEDVOCABULARY, "SELECTION_IN_BACTERIA", "", None, None, False], + ["SELECTION_IN_EUKARYOTES", "General", "selection in eukaryotes", DataType.CONTROLLEDVOCABULARY, "SELECTION_IN_EUKARYOTES", "", None, None, False], + ["SEQUENCE_FILE_NAME", "General", "sequence file name", DataType.VARCHAR, None, "", None, None, False], + ["SEQUENCING_DATE", "General", "sequencing date", DataType.TIMESTAMP, None, "", None, None, False], + ["SERIAL_NUMBER", "General", "serial number", DataType.INTEGER, None, "", None, None, False], + ["SHELF", "General", "shelf", DataType.VARCHAR, None, "", None, None, False], + ["SIZE_INSERT", "General", "size insert", DataType.REAL, None, "", None, None, False], + ["SIZE_OF_INSERT", "General", "size of insert", DataType.VARCHAR, None, "", None, None, False], + ["SIZE_VECTOR", "General", "size vector", DataType.REAL, None, "", None, None, False], + ["PLASMID_SOURCE", "General", "source", DataType.VARCHAR, None, "", None, None, False], + ["PLASMID_SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "PLASMID_ORGANISM", "", None, None, False], + #["TUBES", "General", "TUBES", DataType.VARCHAR, None, "", None, None, False], + ["URL", "Reference", "url", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED_IN", "Reference", "published in", DataType.VARCHAR, None, "", None, None, False] +]; + +chemicalDefinition = [ + ["ARTICLE", "General", "Article", DataType.VARCHAR, None, "", None, None, False], + ["COMPANY", "General", "Company", DataType.CONTROLLEDVOCABULARY, "COMPANY", "", None, None, False], + ["ARTICLE_NUM", "General", "Article Number", DataType.VARCHAR, None, "", None, None, False], + ["RECORD_NUMBER", "General", "RecordNumber", DataType.VARCHAR, None, "", None, None, False], + ["LOCATION", "Location", "Location", DataType.VARCHAR, None, "", None, None, False] +]; + +siRNADefinition = [ + ["INVESTIGATOR", "General", "investigator", DataType.CONTROLLEDVOCABULARY, "ALL_LAB_MEMBERS", "", None, None, False], + ["GENE_LOCUS", "General", "gene locus", DataType.VARCHAR, None, "", None, None, False], + ["EXON_OR_THREE_PRIME", "General", "exon or three prime", DataType.CONTROLLEDVOCABULARY, "EXON_OR_THREE_PRIME", "", None, None, False], + ["EXON", "General", "exon #", DataType.INTEGER, None, "", None, None, False], + ["3_PRIME_POSITION", "General", "3' position", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_SPECIES", "General", "species", DataType.CONTROLLEDVOCABULARY, "SIRNA_SPECIES", "", None, None, False], + ["SEQUENCE", "General", "SEQUENCE", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_COMPANY", "General", "Company", DataType.CONTROLLEDVOCABULARY, "SIRNA_COMPANY", "", None, None, False], + ["STOCK_CONCENTRATION", "General", "Stock concentration", DataType.REAL, None, "", None, None, False], + ["WORKING_CONCENTRATION", "General", "Working concentration", DataType.REAL, None, "", None, None, False], + ["EFFICIENCY", "General", "Efficiency", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_QPCR", "General", "Efficiency_qPCR", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_WESTERN", "General", "Efficiency_Western", DataType.VARCHAR, None, "", None, None, False], + ["EFFICIENCY_OTHER", "General", "Efficiency_other", DataType.VARCHAR, None, "", None, None, False], + ["OFF_TARGET_EFFECTS", "General", "Off target effects", DataType.VARCHAR, None, "", None, None, False], + ["INFO", "General", "Info", DataType.VARCHAR, None, "", None, None, False], + ["SPECIFIC_SPLICE_VARIANT", "General", "Specific splice variant", DataType.VARCHAR, None, "", None, None, False], + ["TRANSFECTION_AGENT", "General", "Transfection agent", DataType.CONTROLLEDVOCABULARY, "TRANSFECTION_AGENT", "", None, None, False], + ["LIBRARY", "General", "Library", DataType.VARCHAR, None, "", None, None, False], + ["CHARACTERIZED_BY_COMPANY", "General", "Characterized by company", DataType.VARCHAR, None, "", None, None, False], + ["NUMBERINPOOL", "General", "NumberINpool", DataType.INTEGER, None, "", None, None, False], + ["TEST", "General", "Test", DataType.VARCHAR, None, "", None, None, False], + ["CHEMICAL_MODIFICATION", "General", "Chemical modification", DataType.VARCHAR, None, "", None, None, False], + ["OLIGO_NAME", "General", "Oligo name", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_OLIGONUMBER", "General", "siRNA_OligoNumber", DataType.VARCHAR, None, "", None, None, False], + ["SIRNA_FREEZER_LOCATION", "General", "Freezer Location", DataType.CONTROLLEDVOCABULARY, "SIRNA_FREEZER_LOCATION", "", None, None, False], + ["DRAWER", "General", "Drawer", DataType.VARCHAR, None, "", None, None, False], + ["PUBLISHED", "Reference", "Published", DataType.VARCHAR, None, "", None, None, False] +]; + +# +# Data Set Types +# +documentDefinition = [ + ["CREATION_DATE", "General", "date created", DataType.TIMESTAMP, None, "", None, None, False], + ["MODIFICATION_DATE", "General", "date modified", DataType.TIMESTAMP, None, "", None, None, False], + ["INFO", "General", "info", DataType.VARCHAR, None, "", None, None, False], + ["ID_NR", "General", "id_nr", DataType.VARCHAR, None, "", None, None, False], + ["FILE", "General", "file", DataType.VARCHAR, None, "", None, None, False], + ["SERIAL", "General", "serial", DataType.INTEGER, None, "", None, None, False] + +]; diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitionsVoc.py b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitionsVoc.py new file mode 100644 index 0000000000000000000000000000000000000000..6c41596dc8dd2ff2c3e1aff1b0ae83ddf1961722 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/definitionsVoc.py @@ -0,0 +1,852 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# +# Helper Methods +# +def getVocabularyTermCodeForVocabularyAndTermLabel(vocabularyCode, termLabel): + vocabulary = vocabularyDefinitions[vocabularyCode] + for term in vocabulary: + if term[1] == termLabel: + #print repr("TERM NOT FOUND IN VOCABULARY LIST: " + unicode(vocabularyCode) + " : '" + unicode(termLabel) + "'") + return term[0] + return None + +# "VOCABULARY_CODE" : { "TERM_CODE" : "OBJECT" } +createdVocabularyTerms = { } + +def printCreatedTerms(): + print "--- Created Vocabulary Terms Report" + for vocabularyCode in createdVocabularyTerms: + print "Vocabulary [" + vocabularyCode + "]" + for vocabularyTermCode in createdVocabularyTerms[vocabularyCode]: + print "Term [" + vocabularyTermCode + "] Label: [" + repr(createdVocabularyTerms[vocabularyCode][vocabularyTermCode].getLabel()) + "]" + print "---" + +def getCreatedTerm(vocabularyCode, termCode): + if vocabularyCode in createdVocabularyTerms: + if termCode in createdVocabularyTerms[vocabularyCode]: + return createdVocabularyTerms[vocabularyCode][termCode] + return None + +def addCreatedTerm(vocabularyCode, termCode, object): + if vocabularyCode not in createdVocabularyTerms: + createdVocabularyTerms[vocabularyCode] = {} + createdVocabularyTerms[vocabularyCode][termCode] = object + +def createVocabularyTerm(tr, vocabularyCode, termCode, termLabel): + createdTerm = getCreatedTerm(vocabularyCode, termCode) + if createdTerm is None: + vocabulary = tr.getVocabularyForUpdate(vocabularyCode) + + for term in vocabulary.getTerms(): + if term.getCode() == termCode: + createdTerm = term + + if createdTerm is None: + createdTerm = tr.createNewVocabularyTerm() + createdTerm.setCode(termCode) + createdTerm.setLabel(termLabel) + createdTerm.setOrdinal(vocabulary.getTerms().size()) + vocabulary.addTerm(createdTerm) + addCreatedTerm(vocabularyCode, termCode, createdTerm) + return createdTerm + +# +# Vocabularies +# + +vocabularyDefinitions = { + "ALL_LAB_MEMBERS" : [ + ["ANNA_DEPLAZES", "Anna Deplazes"], + ["ANNE-CHRISTINE_BUTTY", "Anne-Christine Butty"], + ["BRIAN_LUKE", "Brian Luke"], + ["CAROLINE_ZBINDEN", "Caroline Zbinden"], + ["CELINE_LAFOURCADE", "Celine Lafourcade"], + ["CHRISTINE_RUPP", "Christine Rupp"], + ["CLAUDINE_KRAFT", "Claudine Kraft"], + ["EDYTA_SIERGIEJUK", "Edyta Siergiejuk"], + ["FABIAN_HERZOG", "Fabian Herzog"], + ["FABIAN_RUDOLF", "Fabian Rudolf"], + ["FRANK_VAN_DROGEN", "Frank Van Drogen"], + ["GERDA_JORRITSMA", "Gerda Jorritsma"], + ["GWEN_RABUT", "Gw\xe9nael Rabut"], + ["INGRID_STOFFEL-STUDER", "Ingrid Stoffel-Studer"], + ["IRAM_ZAIDI", "Iram Zaidi"], + ["IZABELA_SUMARA", "Izabela Sumara"], + ["LIONEL_PINTARD", "Lionel Pintard"], + ["MALIKAJAQUENOUD", "MalikaJaquenoud"], + ["MARC_SOHRMANN", "Marc Sohrmann"], + ["MARIE-LYN_HECHT", "Marie-Lyn Hecht"], + ["MARIE-PIERRE_GULLI", "Marie-Pierre Gulli"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["MICHAEL_OLMA", "Michael Olma"], + ["MICHAEL_SCHNEIDER", "Michael Schneider"], + ["MICHELE_KNAUS", "Michele Knaus"], + ["MONIKA_GERSBACH", "Monika Gersbach"], + ["NATHALIE_MEYER-SCHALLER", "Nathalie Meyer-Schaller"], + ["NATHALIE_PERRINJAQUET", "Nathalie Perrinjaquet"], + ["NICOLAS_DARD", "Nicolas Dard"], + ["NICOLAS_PAGE", "Nicolas Page"], + ["PATRICK_PEDRIOLI", "Patrick Pedrioli"], + ["PHILIPPE_WIGET", "Philippe Wiget"], + ["PIERRE_MAILLARD", "Pierre Maillard"], + ["REINHARD_DECHANT", "Reinhard Dechant"], + ["SANDER_SPRINGER", "Sander Springer"], + ["SARAH_GLASER", "Sarah Glaser"], + ["SARAH_MAERKI", "Sarah M\xe4rki"], + ["SEBASTIAN_LEIDEL", "Sebastian Leidel"], + ["SERGE_PELET", "Serge Pelet"], + ["STEFAN_MUELLER", "Stefan M�ller"], + ["TANIA_ROBERTS", "Tania Roberts"], + ["THIMO_KURZ", "Thimo Kurz"], + ["TOBIAS_BRAUN", "Tobias Braun"], + ["VANESSA_REZGUI", "Vanessa Rezgui"], + ["WOJCIECH_PIWKO", "Wojciech Piwko"], + ["YUKIKO_SHIMADA", "Yukiko Shimada"], + ["YVONNE_GLOOR", "Yvonne Gloor"], + ["JOCHEN_BECK", "Jochen Beck"], + ["MONIKA_KIJANSKA", "Monika Kijanska"], + ["ANGIE_RAGHEB", "Angie Ragheb"], + ["ANNE_PACQUELET", "Anne Pacquelet"], + ["BJORN_HEGEMANN", "Bj\xf6rn Hegemann"], + ["JANNY_TILMA", "Janny Tilma"], + ["THIBAULT_COURTHEOUX", "Thibault Courtheoux"], + ["SAMUEL_GILBERTO", "Samuel Gilberto"], + ["REMY_BUSER", "Remy Buser"], + ["RADOSLAV_ENCHEV", "Radoslav Enchev"], + ["MICHAELA_HUBNER", "Michaela Hubner"], + ["MIA_LI", "Mia Li"], + ["JULIEN_MOUYSSET", "Julien Mouysset"] + ], + "LAB_MEMBERS_INITIALS" : [ + ["AD", "AD"], + ["ACB", "ACB"], + ["BL", "BL"], + ["CZ", "CZ"], + ["CL", "CL"], + ["CR", "CR"], + ["CK", "CK"], + ["ES", "ES"], + ["FH", "FH"], + ["FR", "FR"], + ["FD", "FD"], + ["GJ", "GJ"], + ["GR", "GR"], + ["ISS", "ISS"], + ["IZ", "IZ"], + ["IS", "IS"], + ["LP", "LP"], + ["MJ", "MJ"], + ["MSO", "MSo"], + ["MH", "MH"], + ["MG", "MG"], + ["MP", "MP"], + ["MO", "MO"], + ["MSC", "MSc"], + ["MK", "MK"], + ["MG", "MG"], + ["NS", "NS"], + ["NPE", "NPe"], + ["ND", "ND"], + ["NPA", "NPa"], + ["PP", "PP"], + ["PW", "PW"], + ["PM", "PM"], + ["RD", "RD"], + ["SS", "SS"], + ["SG", "SG"], + ["SMA", "SMa"], + ["SL", "SL"], + ["SP", "SP"], + ["SM", "SM"], + ["TR", "TR"], + ["TK", "TK"], + ["TB", "TB"], + ["VR", "VR"], + ["WP", "WP"], + ["YS", "YS"], + ["YG", "YG"], + ["JB", "JB"], + ["MKI", "MKi"] + ], + "BLOCK" : [ + ["1BSA_01TRITON-X100", "1% BSA; 0.1% Triton-X100"], + ], + "CLASS" : [ + ["IGM", "IgM"], + ["IGG1", "IgG1"], + ["IGG2", "IgG2"] + ], + "COMPANY" : [ + ["ABCAM", "abcam"], + ["CELL_SIGNALING", "cell signaling"], + ["STRATAGEN", "stratagene"], + ["CLONTECH", "clontech"], + ["UBI", "ubi"], + ["SOUTHERN_BIOTECH", "southern biotech"], + ["PIERCE", "pierce"], + ["PHARMIGEN", "pharmingen"], + ["MOLECULAR_PROBES", "molecular probes"], + ["PHARMACIA", "pharmacia"], + ["BIORAD", "biorad"], + ["EUROGENETIC", "eurogentec"], + ["HOMEMADE", "homemade"], + ["BD_BIOSCIENCE", "BD bioscience"], + ["OBTAINED_FROM", "obtained from "], + ["ZYMED", "Zymed"], + ["UNKNOWN", "Unknown"], + ["SANTA_CRUZ", "Santa Cruz"], + ["BIOLEGEND", "Biolegend"], + ["BETHYL", "Bethyl"], + ["UPSTATE", "Upstate"], + ["ROCKLAND", "Rockland"], + ["NOVUS_BIOLOGICALS", "Novus Biologicals"], + ["CHEMICON_INTERNATIONAL", "Chemicon International"], + ["SIGMA", "Sigma"], + ["ALPHA_DIAGNOSTIC_INTERNATIONAL", "Alpha Diagnostic International"], + ["MILLIPORE", "Millipore"], + ["ACTIVE_MOTIF", "Active motif"], + ["NEB", "NEB"], + ["NEOMARKERS", "Neomarkers"], + ["LUBIOSCIENCE", "LubioScience"], + ["EBIOSCIENCE", "eBioscience"], + ["INVITROGEN", "Invitrogen"], + ["STRESSGEN", "Stressgen"], + ["COVANCE", "Covance"], + ["ENZO_LIFE_SCIENCES", "Enzo Life Sciences"], + ["CALBIOCHEM", "Calbiochem"], + ["ROCHE", "Roche"], + ["CYTOSKELETON", "Cytoskeleton"], + ["OPEN_BIOSYSTEMS", "Open Biosystems"], + ["BD_TRANSDUCTION", "BD Transduction"], + ["ATLAS_ANTIBODIES_AB", "Atlas Antibodies AB"], + ["GENENTECH", "Genentech"], + ["TRANSDUCTION_LABS", "Transduction Labs"], + ["ANTIBODIES_INCORPORATED", "Antibodies Incorporated"], + ["BABCO", "BAbCO"], + ["ERICH_NIGG_LAB_BASEL", "Erich Nigg lab (Basel)"], + ["FRANCIS_BARR", "Francis Barr"], + ["AVIVA_SYSTEMS_BIOLOGY", "Aviva Systems Biology"], + ["LUCERNACHEM", "LucernaChem"], + ["LI-COR", "LI-COR"], + ["ABGENT", "Abgent"], + ["CHROMOTEK", "Chromotek"], + ["ABNOVA", "Abnova"], + ["UNKNOWN", "Unknown"], + ["ABSEA", "Absea"], + ["GE_HEALTHCARE", "GE Healthcare"], + ["GRAMSCH_LABORATORIES", "Gramsch Laboratories"], + ["ADIPOGEN", "Adipogen"], + ["COSMO_BIO_CO", "Cosmo bio co."], + ["BECKTON_DICKINSON", "Beckton Dickinson"], + ["BIOTIUM", "Biotium"] + ], + "CONCENTRATION_FACS" : [ + ["1_TO_10", "1 : 10"], + ["1_TO_20", "1 : 20"], + ["1_TO_30", "1 : 30"], + ["1_TO_40", "1 : 40"], + ["1_TO_50", "1 : 50"], + ["1_TO_100", "1 : 100"], + ["1_TO_200", "1 : 200"], + ["1_TO_500", "1 : 500"], + ["1_TO_1000", "1 : 1000"], + ["1_TO_2000", "1 : 2000"], + ["1_TO_3000", "1 : 3000"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CONCENTRATION_IP" : [ + ["1UL", "1 �l"], + ["5UL", "5 �l"], + ["10UL", "10 �l"], + ["15UL", "15 �l"], + ["20UL", "20 �l"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CONCENTRATION_WESTERN" : [ + ["1_TO_100", "1 : 100"], + ["1_TO_500", "1 : 500"], + ["1_TO_1000", "1 : 1000"], + ["1_TO_2000", "1 : 2000"], + ["1_TO_3000", "1 : 3000"], + ["1_TO_5000", "1 : 5000"], + ["1_TO_10000", "1 : 10000"], + ["1_TO_20000", "1 : 20000"], + ["1_TO_25000", "1 : 25000"], + ["NOT_TESTED", "not tested"], + ["NOT_WORKING", "not working"] + ], + "CURRENT_LAB_MEMBERS" : [ + ["CAROLINE_ZBINDEN", "Caroline Zbinden"], + ["FRANK_VAN_DROGEN", "Frank Van Drogen"], + ["INGRID_STOFFEL-STUDER", "Ingrid Stoffel-Studer"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["REINHARD_DECHANT", "Reinhard Dechant"], + ["WOJCIECH_PIWKO", "Wojciech Piwko"], + ["JOCHEN_BECK", "Jochen Beck"] + ], + "FIX" : [ + ["1H-RT", "1h, RT"], + ["PTEMF", "PTEMF"], + ["PFA", "PFA"], + ["MEOH", "MeOH"] + ], + "LABEL" : [ + ["HRP", "hrp"], + ["AP", "ap"], + ["FITC", "fitc"], + ["CY3", "Cy3"], + ["ALEXA647", "Alexa 647"] + ], + "ANTIBODY_LOCATION" : [ + ["SMALL_PETER_LAB", "Small Peter Lab"], + ["BIG_PETER_LAB", "Big Peter Lab"], + ["NEW_PETER_LAB", "New Peter Lab"], + ["MINUS20_C-FLOOR", "-20C C-Floor"] + ], + "MONO-POLYCLONAL" : [ + ["MONOCLONAL", "Monoclonal"], + ["POLYCLONAL", "Polyclonal"], + ["UNKNOWN", "Unknown"] + ], + "SOURCE" : [ + ["MOUSE", "Mouse"], + ["RABBIT", "Rabbit"], + ["HAMSTER", "Hamster"], + ["GOAT", "Goat"], + ["RAT", "Rat"], + ["CHICKEN", "Chicken"], + ["SHEEP", "Sheep"], + ["HUMAN", "Human"], + ["GUINEA_PIG", "Guinea pig"], + ["DONEKY", "Donkey"], + ["UNKNOWN", "Unknown"] + ], + "CELL_LOCATION" : [ + ["FRIDGE", "fridge"], + ["FREEZER", "freezer"], + ["REFCO", "refco"], + ["TANK", "tank"] + ], + "SELECTION" : [ + ["NEOMYCIN_G418", "Neomycin/G418"], + ["HYGROMYCIN", "Hygromycin"], + ["MPA", "MPA"], + ["G418", "G418"], + ["PUROMYCIN", "puromycin"], + ["BLASTICIDIN", "Blasticidin"], + ["ZEOCIN", "Zeocin"] + ], + "CO2" : [ + ["5", "5"], + ["7.5", "7.5"] + ], + "GROWTH_TEMPERATURE" : [ + ["37", "37"], + ["28", "28"], + ["34", "34"] + ], + "MEDIUM" : [ + ["RPMI1640", "RPMI 1640"], + ["ISCOVES", "Iscoves"], + ["DMEM", "DMEM"], + ["LB", "LB"], + ["DMEM_NUTRIENT", "DMEM nutrient mixture F-12 HAM [D8437]"] + ], + "CELL_OBTAINED_FROM" : [ + ["FREIBURG", "Freiburg"], + ["ATCC", "ATCC"], + ["DANIEL_GERLICH", "Daniel Gerlich"], + ["ERICH_NIGG", "Erich Nigg"], + ["KREK", "Krek"], + ["TONY_HEYMAN", "Tony Heyman"], + ["THOMAS-WILD_ULRIKE-KUTAY", "Thomas Wild/Ulrike Kutay"], + ["JAN_MICHAEL_PETERS", "Jan-Michael Peters"], + ["M_BRANDEIS", "M Brandeis"], + ["ARI_HELENIUS", "Ari Helenius"], + ["ROMEO_RICCI", "Romeo Ricci"] + ], + "CELL_SPECIES" : [ + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["CHINESE_HAMSTER", "chines hamster"], + ["HYBRIDOMA", "hybridoma (human & mouse)"] + ], + "CONC_UNITS" : [ + ["MICROG_MICROL", "�g/�l"], + ["MG_ML", "mgl/ml"], + ["UG_ML", "ug/ml"] + ], + "STRAIN_SOURCE" : [ + ["F_CHANG", "F. Chang"], + ["J_CHANT", "J. Chant"], + ["R_DESHAIES", "R. Deshaies"], + ["E_ELION", "E. Elion"], + ["P_HIETER", "P. Hieter"], + ["I_HERSKOWITZ", "I. Herskowitz"], + ["A_NEIMAN", "A. Neiman"], + ["P_SORGER", "P. Sorger"], + ["T_STEARNS", "T. Stearns"], + ["MARC_BONDEL", "Marc Bondel"], + ["G_SUMARA", "G. Sumara"], + ["MICHAEL_ALTMANN", "Michael Altmann"], + ["HETEROZYGOUS_DIPLOID_COLLECTION", "Heterozygous diploid collection"], + ["ANNE-CHRISTINE_BUTTY", "Anne-Christine Butty"], + ["ANNE_PAQUELET", "Anne Paquelet"], + ["YAGMUR-TURGAY_KUTAY-GROUP", "Yagmur Turgay - Kutay group"], + ["BARBAR_CATARIN", "Barbar Catarin"], + ["FRANK_VAN-DROGEN", "Frank van Drogen"], + ["HEMMO_MEYER", "Hemmo Meyer"], + ["JEAN-MARC_GALLAND", "Jean-Marc Galland"], + ["JEFF_PARVIN", "Jeff Parvin"], + ["MARIE-PIERRE_GULLI", "Marie-Pierre Gulli"], + ["MIKIKO_TAKAHASHI", "Mikiko Takahashi"], + ["SANDRA_HENCHOZ", "Sandra Henchoz"], + ["MALIKA_JAQUENOUD", "Malika Jaquenoud"], + ["GERDA_JORRITSMA", "Gerda Jorritsma"], + ["CELINE_LAFOURCADE", "Céline Lafourcade"], + ["CELINE_LONGARETTI", "Céline Longaretti"], + ["BRIAN_LUKE", "Brian Luke"], + ["GUY_NIEDERHAUSER", "Guy Niederhäuser"], + ["NICOLAS_PAGE", "Nicolas Pag�"], + ["NATHALIE_PERRINJAQUET", "Nathalie Perrinjaquet"], + ["MATTHIAS_PETER", "Matthias Peter"], + ["AUDREY_PETIT", "Audrey Petit"], + ["LIONEL_PINTARD", "Lionel Pintard"], + ["YUKIKO_SHIMADA", "Yukiko Shimada"], + ["PHILIPPE_WIGET", "Philippe Wiget"], + ["VOLKER_STUCKE", "Volker Stucke"], + ["KATRIN_PETER", "Katrin Peter"], + ["MARC_BLONDEL", "marc blondel"], + ["M_FUNK", "M. Funk"], + ["ATTILA_BECSKEI", "Attila Becskei"], + ["GWENAEL_RABUT", "Gwenael Rabut"], + ["PHILIP_JERMANN", "Philip Jermann"], + ["P_PRYCIAK", "P.Pryciak"], + ["LINDA_HICKE", "Linda Hicke"], + ["RZPD", "RZPD"], + ["OPENBIO", "OpenBio"], + ["F_POSAS", "F. Posas"], + ["HAPLOID_COLLECTION", "Haploid collection"], + ["MIRIAM_BORTFELD", "Miriam Bortfeld"], + ["EUROSCARF", "Euroscarf"], + ["TS_COLLECTION", "ts collection"], + ["CONZELMANN_LAB", "Conzelmann lab"], + ["SEBASTIAN_LEIDEL", "Sebastian Leidel"], + ["ANNA_DEPLAZES", "Anna Deplazes"], + ["BIBOU", "Bibou"], + ["MARC_SOHRMANN", "Marc sohrmann"] + ], + "SELECTION_YEAST" : [ + ["NONE", "None"], + ["URA", "Ura"], + ["LEU", "Leu"], + ["TRP", "Trp"], + ["HIS", "His"], + ["VIABILITY", "Viability"], + ["NAT", "nat"], + ["KAN", "kan"], + ["KAN_NAT", "kan + nat"], + ["HIS_KAN", "HIS + kan"], + ["HIS_KAN_NAT", "HIS + kan + nat"], + ["HIS", "HIS"], + ["LEU_NAT", "leu + nat"], + ["ADE2", "ade2"] + ], + "DERIVATION" : [ + ["GAMMA_INTEG", "gamma integ"], + ["DELTA_INTEG", "� integ"], + ["5FAO_LOOPOUT", "5-FAO loopout"], + ["PLASMID_SHUFFLE", "plasmid shuffle"], + ["TETRAD", "tetrad"], + ["LOOP-IN_LOOP-OUT", "loop-in/loop-out"], + ["GALPHO", "GalpHO mating type switch"], + ["DELETION", "Deletion"], + ["INTEGRATION", "Integration"] + ], + "STRAIN_BACKGROUND" : [ + ["W303", "W303"], + ["K699", "K699"], + ["K700", "K700"], + ["S288C", "S288C"], + ["1278", "*1278*"], + ["EG123", "EG123"], + ["DF5", "DF5"], + ["SIGMA", "Sigma"], + ["UNKNOWN", "Don't know"], + ["BY7092", "BY7092"], + ["BY5565", "BY5565"], + ["BY4741", "BY4741"] + ], + "CIR" : [ + ["CIR_PLUS", "cir+"], + ["CIR_DEG", "cir�"], + ], + "GAL" : [ + ["PLUS", "Plus"], + ["PLUS_PLUS", "Plus/Plus"], + ["GAL1", "gal1"], + ["GAL1_GAL1", "gal1/gal1"], + ["GAL2", "gal2"], + ["GAL2_GAL2", "gal2/gal2"], + ], + "MAT" : [ + ["AT", "@"], + ["A", "a"], + ["ALPHA", "alpha"], + ["DIPLOID", "diploid"], + ["UNKNOWN", "unknown"] + ], + "OLIGO_ORGANISM" : [ + ["BMV", "BMV"], + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["XENOPUS", "xenopus"], + ["DROSOPHILA", "drosophila"], + ["YEAST", "yeast"], + ["ECOLI", "E.coli"], + ["SYNTHETIC", "synthetic"], + ["HIV1", "HIV-1"], + ["CELEGANS", "C.elegans"], + ["MYCOPLASMA", "mycoplasma"] + ], + "OLIGO_GRADE" : [ + ["DESALTED", "desalted"], + ["HPLC", "hplc"], + ["PURITY", "purity"], + ["UNKNOWN", "?"] + ], + "PRIMER_POSITION" : [ + ["FORWARD", "forward"], + ["REVERSE", "reverse"] + ], + "OLIGO_COMPANY" : [ + ["MWG", "MWG"], + ["BIG", "BIG"], + ["PHARMACIA", "Pharmacia"], + ["IGLOI", "Igloi"], + ["INVITROGEN", "invitrogen"], + ["MICROSYNTH", "microsynth"] + ], + "OLIGO_USAGE" : [ + ["PCR", "pcr"], + ["SEQUENCING", "sequencing"], + ["HYBRIDIZE", "hybridize"], + ["MUTAGENESIS", "mutagenesis"], + ["RT-PCR", "Real-Time PCR"] + ], + "RESTRICTION" : [ + ["AATII", "AatII"], + ["ACCI", "AccI"], + ["ACII", "AciI"], + ["AFLII", "AflII"], + ["AFLIII", "AflIII"], + ["AGEI", "AgeI"], + ["ALUI", "AluI"], + ["ALWI", "AlwI"], + ["ALWNI", "AlwNI"], + ["APAI", "ApaI"], + ["APALI", "ApaLI"], + ["APOI", "ApoI"], + ["ASCI", "AscI"], + ["ASEI", "AseI"], + ["AVAI", "AvaI"], + ["AVAII", "AvaII"], + ["AVRII", "AvrII"], + ["BAMHI", "BamHI"], + ["BANI", "BanI"], + ["BANII", "BanII"], + ["BBSI", "BbsI"], + ["BBVI", "BbvI"], + ["BCGI-1", "BcgI-1"], + ["BCGI-2", "BcgI-2"], + ["BCLI", "BclI"], + ["BFAI", "BfaI"], + ["BGLI", "BglI"], + ["BGLII", "BglII"], + ["BLPI", "BlpI"], + ["BPMI", "BpmI"], + ["BSAAI", "BsaAI"], + ["BSABI", "BsaBI"], + ["BSAHI", "BsaHI"], + ["BSAI", "BsaI"], + ["BSAJI", "BsaJI"], + ["BSAWI", "BsaWI"], + ["BSERI", "BseRI"], + ["BSGI", "BsgI"], + ["BSIEI", "BsiEI"], + ["BSIHKAI", "BsiHKAI"], + ["BSIWI", "BsiWI"], + ["BSLI", "BslI"], + ["BSMAI", "BsmAI"], + ["BSMBI", "BsmBI"], + ["BSMFI", "BsmFI"], + ["BSMI", "BsmI"], + ["BSOFI", "BsoFI"], + ["BSP1286I", "Bsp1286I"], + ["BSPEI", "BspEI"], + ["BSPHI", "BspHI"], + ["BSPMI", "BspMI"], + ["BSRBI", "BsrBI"], + ["BSRDI", "BsrDI"], + ["BSRFI", "BsrFI"], + ["BSRGI", "BsrGI"], + ["BSRI", "BsrI"], + ["BSSHII", "BssHII"], + ["BST1107I", "Bst1107I"], + ["BSTBI", "BstBI"], + ["BSTEII", "BstEII"], + ["BSTNI", "BstNI"], + ["BSTUI", "BstUI"], + ["BSTXI", "BstXI"], + ["BSTYI", "BstYI"], + ["BSU36I", "Bsu36I"], + ["CAC8I", "Cac8I"], + ["CLAI", "ClaI"], + ["CVIJI", "CviJI"], + ["DDEI", "DdeI"], + ["DPNI", "DpnI"], + ["DRAI", "DraI"], + ["DRAIII", "DraIII"], + ["DRDI", "DrdI"], + ["DSAI", "DsaI"], + ["EAEI", "EaeI"], + ["EAGI", "EagI"], + ["EAM1105I", "Eam1105I"], + ["EARI", "EarI"], + ["ECO47III", "Eco47III"], + ["ECO57I", "Eco57I"], + ["ECONI", "EcoNI"], + ["ECOO109I", "EcoO109I"], + ["ECORI", "EcoRI"], + ["ECORV", "EcoRV"], + ["FOKI", "FokI"], + ["FSEI", "FseI"], + ["FSPI", "FspI"], + ["HAEII", "HaeII"], + ["HAEIII", "HaeIII"], + ["HGAI", "HgaI"], + ["HHAI", "HhaI"], + ["HINCII", "HincII"], + ["HINDIII", "HindIII"], + ["HINFI", "HinfI"], + ["HPAI", "HpaI"], + ["HPAII", "HpaII"], + ["HPHI", "HphI"], + ["KPNI", "KpnI"], + ["MAEII", "MaeII"], + ["MAEIII", "MaeIII"], + ["MBOI", "MboI"], + ["MBOII", "MboII"], + ["MLUI", "MluI"], + ["MNLI", "MnlI"], + ["MSCI", "MscI"], + ["MSEI", "MseI"], + ["MSLI", "MslI"], + ["MSPA1I", "MspA1I"], + ["MUNI", "MunI"], + ["MWOI", "MwoI"], + ["NAEI", "NaeI"], + ["NARI", "NarI"], + ["NCII", "NciI"], + ["NCOI", "NcoI"], + ["NDEI", "NdeI"], + ["NHEI", "NheI"], + ["NLAIII", "NlaIII"], + ["NLAIV", "NlaIV"], + ["NOTI", "NotI"], + ["NRUI", "NruI"], + ["NSII", "NsiI"], + ["NSPI", "NspI"], + ["PACI", "PacI"], + ["PFLMI", "PflMI"], + ["PLEI", "PleI"], + ["PMEI", "PmeI"], + ["PMLI", "PmlI"], + ["PPUMI", "PpuMI"], + ["PSHAI", "PshAI"], + ["PSP1406I", "Psp1406I"], + ["PSTI", "PstI"], + ["PVUI", "PvuI"], + ["PVUII", "PvuII"], + ["RSAI", "RsaI"], + ["RSRII", "RsrII"], + ["SACI", "SacI"], + ["SACII", "SacII"], + ["SALI", "SalI"], + ["SAPI", "SapI"], + ["SAU96I", "Sau96I"], + ["SCAI", "ScaI"], + ["SCRFI", "ScrFI"], + ["SEXAI", "SexAI"], + ["SFANI", "SfaNI"], + ["SFCI", "SfcI"], + ["SFII", "SfiI"], + ["SGFI", "SgfI"], + ["SGRAI", "SgrAI"], + ["SMAI", "SmaI"], + ["SNABI", "SnaBI"], + ["SPEI", "SpeI"], + ["SPHI", "SphI"], + ["SRFI", "SrfI"], + ["SSE8387I", "Sse8387I"], + ["SSPI", "SspI"], + ["STUI", "StuI"], + ["STYI", "StyI"], + ["SWAI", "SwaI"], + ["TAQI", "TaqI"], + ["TFII", "TfiI"], + ["TSP45I", "Tsp45I"], + ["TSP509I", "Tsp509I"], + ["TTH111I", "Tth111I"], + ["XBAI", "XbaI"], + ["XCMI", "XcmI"], + ["XHOI", "XhoI"], + ["XMNI", "XmnI"], + ["SACI_NHEI", "sacI NheI"], + ["XMAI", "XmaI"], + ["BAMHI", "BamHI"], + ["CLAI", "ClaI"], + ["PACI", "PacI"], + ["NOTI", "NotI"], + ["SALI", "SalI"], + ["XHOI", "XhoI"], + ["NONE", "none"] + ], + "BACKBONE" : [ + ["PCDNA3", "pCDNA3"], + ["PABES-NEO2000", "pABES-neo 2000"], + ["PUC19", "pUC 19"], + ["PMX-1", "pMX-1"], + ["PRMHA-3", "pRmHa-3"] + ], + "BACTERIAL_HOST" : [ + ["DH10B", "DH10B"], + ["JM110", "JM110"], + ["BL21", "BL21"], + ["DH5A", "DH5a"], + ["PB3", "PB3"], + ["DB31", "DB3.1"], + ["CCDB_SURVIVAL", "ccdB survival"] + ], + "BIOSAFETY_LEVEL" : [ + ["S1", "S1"], + ["S2", "S2"], + ["S3", "S3"] + ], + "SELECTION_IN_BACTERIA" : [ + ["AMPICILLIN", "Ampicillin"], + ["KANAMYCIN", "Kanamycin"], + ["SPECTINOMCIN", "Spectinomcin"], + ["UNKNOWN", "Unknown"] + ], + "SELECTION_IN_EUKARYOTES" : [ + ["G418_NEO", "G418/neo"], + ["MPA", "MPA"], + ["HYGROMYCIN", "Hygromycin"] + ], + "SOURCE_OF_REPLICON" : [ + ["CMV", "CMV"] + ], + "PLASMID_ORGANISM" : [ + ["HUMAN", "human"], + ["MOUSE", "mouse"], + ["RAT", "rat"], + ["XENOPUS", "xenopus"], + ["DROSOPHILA", "drosophila"], + ["YEAST", "yeast"], + ["ECOLI", "E.coli"], + ["SYNTHETIC", "synthetic"] + ], + "PROMOTER" : [ + ["ENDOGENOUS", "endogenous"], + ["GAL1", "gal1"], + ["GALL", "galL"], + ["GALS", "galS"], + ["TET", "tet"], + ["ADH", "adh"], + ["CYC", "cyc"], + ["GPD", "gpd"], + ["DASH", "\"-\""], + ["CMV", "cmv"], + ["SV40", "SV40"], + ["TET_ON", "tet on"], + ["TET_OFF", "tet off"], + ["RIM1", "rim1"] + ], + "EXON_OR_THREE_PRIME" : [ + ["EXON", "exon"], + ["3P", "3'"], + ["5P", "5'"] + ], + "SIRNA_SPECIES" : [ + ["HUMAN", "Human"], + ["MOUSE", "Mouse'"], + ], + "SIRNA_COMPANY" : [ + ["AMBION", "Ambion"], + ["DHARMACON", "Dharmacon'"], + ["INVITORGEN", "Invitrogen'"], + ["MICROSYNTH", "Microsynth'"], + ["QIAGEN", "Qiagen'"], + ["GIFT", "Gift'"] + ], + "SIRNA_FREEZER_LOCATION" : [ + ["BIGLABFREEZER", "BigLab freezer"], + ["SMALLLAB_BIGFREEZER", "SmallLab Big freezer'"], + ["FREEZER_G17", "Freezer G17'"], + ["G93-FRANK", "G9.3--Frank'"], + ["FREEZER-G17_BOX_NATHALIE", "Freezer G17 Box Nathalie'"], + ["BOX-THIBAULT-BIGFREEZER-SMALLLAB", "Box thibault Big freezer small lab'"], + ["BOX-NATHALIE", "Box Nathalie'"] + ], + "TRANSFECTION_AGENT" : [ + ["FUGENE", "Fugene"], + ["LIPOFECTAMINE", "Lipofectamine'"], + ["OLIGOFECTAMINE", "Oligofectamine'"], + ["RNAIMAX", "RNAimax'"] + ], + "FREEZER" : [ + ["G9_FRIDGE-1", "G9 Fridge 1"], + ["G9_FRIDGE-2", "G9 Fridge 2"], + ["G9_FREEZER-A", "-20C Small Peter Lab"], + ["G9_FREEZER-B", "G9 Freezer B"], + ["G9_FREEZER-C", "G9 Freezer C"], + ["G10_FREEZER-D", "G10 Freezer D"], + ["G10_FREEZER-E", "G10 Freezer E"], + ["G10_FREEZER-F", "G10 Freezer F"], + ["G10_FREEZER-G", "G10 Freezer G"], + ["G10_FREEZER-H", "G10 Freezer H"], + ["G10_FREEZER-I", "G10 Freezer I"], + ["G10_FRIDGE-3", "+4C Big Peter Lab"], + ["G10_FRIDGE-4", "G10 Fridge 4"], + ["G10_FRIDGE-5", "G10 Fridge 5"], + ["G10_FRIDGE-6", "G10 Fridge 6"], + ["G10_FRIDGE-7", "G10 Fridge 7"], + ["G11_FRIDGE-8", "G10 Fridge 8"], + ["G14_FREEZER-J", "G14 Freezer J"], + ["G14_FREEZER-K", "G14 Freezer K"], + ["G14_FREEZER-L", "G14 Freezer L"], + ["G14_FREEZER-M", "G14 Freezer M"], + ["G14_FRIDGE-9", "G14 Fridge 9"], + ["G14_FRIDGE-10", "G14 Fridge 10"], + ["G17_FRIDGE-11", "G17 Fridge 11"], + ["G17_FRIDGE-12", "G17 Fridge 12"], + ["G17_FREEZER-N", "G17 Freezer N"], + ["USER_BENCH-20", "Bench -20�C"], + ["USER_BENCH-80", "Bench -80�C"], + ["USER_BENCH-RT", "Bench RT"], + ["USER_BENCH", "Bench"] + ], + "STORAGE_BOX_SIZE" : [ + ["9X9", "9 x 9 box"], + ["5X5", "5 x 5 box"], + ["10X10", "10 x 10 box"], + ["10X12", "10 x 12 box"] + ], + } \ No newline at end of file diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/FileMakerMain.java b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/FileMakerMain.java new file mode 100644 index 0000000000000000000000000000000000000000..a2206338c1ccb79267396fbe2751fbb529304ab8 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/FileMakerMain.java @@ -0,0 +1,77 @@ +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + + +// STEP By Step: +// 1. Open the file maker file with file maker pro +// 2. Go to "File -> Sharing -> ODBC/JDBC" and turn sharing on +// 3. You can go to see the names of the tables and field to "File -> Manage -> Database" +// Without closing file maker pro you can run this script, modify it as needed +// More info at http://www.filemaker.com/support/product/docs/fmp/fm11_odbc_jdbc_guide_en.pdf + +public class FileMakerMain +{ + // NOTE: FileMaker is so dump that you can't get the fileName and the fileData on the same query, the file data will return null, so we make a second call for this + public static final String GET_DOCUMENTS = "SELECT CAST(file AS VARCHAR(1000)) AS fileName, info, serial FROM documents"; + public static final String GET_DOCUMENT_DATA = "SELECT GetAs(file, 'FILE') AS fileData FROM documents WHERE serial = ?"; + + static class Document { + String fileName; + String info; + String serial; + + public String toString() + { + return fileName + " " + info; + } + } + + public static List<Document> getDocuments(Connection connection) throws SQLException { + List<Document> documents = new ArrayList<Document>(); + PreparedStatement preparedStatement = connection.prepareStatement(GET_DOCUMENTS); + ResultSet result = preparedStatement.executeQuery(); + + while(result.next()) { + Document document = new Document(); + document.fileName = result.getString("fileName"); + document.info = result.getString("info"); + document.serial = result.getString("serial"); + documents.add(document); + } + result.close(); + preparedStatement.close(); + return documents; + } + + public static byte[] getFile(Connection connection, Document document) throws SQLException { + byte[] bytes = {}; + PreparedStatement preparedStatement = connection.prepareStatement(GET_DOCUMENT_DATA); + preparedStatement.setString(1, document.serial); + ResultSet result = preparedStatement.executeQuery(); + if(result.next()) { + byte[] value = result.getBytes("fileData"); + if(value != null) { + bytes = value; + } + } + result.close(); + preparedStatement.close(); + return bytes; + } + + public static void main(String[] args) throws Exception { + Class.forName("com.filemaker.jdbc.Driver").newInstance(); + Connection connection = DriverManager.getConnection("jdbc:filemaker://127.0.0.1/BOXIT_documents_Peter.fmp12","designer", "seattle"); + + for(Document document: getDocuments(connection)) { + byte[] bytes = getFile(connection, document); + System.out.println(document + " " + bytes.length); + } + connection.close(); + } +} diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/fmjdbc.jar b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/fmjdbc.jar new file mode 100644 index 0000000000000000000000000000000000000000..34cae1d60b916205b9039fe765c971229cef1a32 Binary files /dev/null and b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/lib/fmjdbc.jar differ diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/migration.py b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/migration.py new file mode 100644 index 0000000000000000000000000000000000000000..44b497ae290427ddae7b09df68d7733f48e2bf63 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/migration.py @@ -0,0 +1,657 @@ +# some_file.py +import sys +import definitions +import definitionsVoc +import re +import random +from datetime import datetime +from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria, SearchSubCriteria +import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.DataType as DataType + +import java.lang.Class as Class +import java.sql.DriverManager as DriverManager + +## +## Generic Process Method +## +notMigratedEntities = { + "ENTITY_TYPE" : {"ENTITY ID" : {"ERROR" : "TIMES" }} + } + +def addNotMigratedEntity(type, entityID, error): + if type not in notMigratedEntities: + notMigratedEntities[type] = {} + if entityID not in notMigratedEntities[type]: + notMigratedEntities[type][entityID] = {} + if error not in notMigratedEntities[type][entityID]: + notMigratedEntities[type][entityID][error] = 1 + else: + notMigratedEntities[type][entityID][error] += 1 + +def printNotMigratedEntities(): + print "--- Not Migrated Entities Report" + for type in notMigratedEntities: + print "Type: [" + str(type) + "]" + for id in notMigratedEntities[type]: + for error in notMigratedEntities[type][id]: + print "Id: [" + str(id) + "] Error: " + str(error) + " Times: " + str(notMigratedEntities[type][id][error]) + print "---" + +def process(tr): + print "START!" + createDataHierarchy(tr) + for adaptor in adaptors: + print "- ADAPTOR [" + adaptor.__class__.__name__ + "] START" + while adaptor.next(): + entity = adaptor.getEntity() + print "* ENTITY [" + str(entity.getIdentifier(tr)) + "]" + try: + if not entity.isInOpenBIS(tr): + entity.write(tr) + #print entity.getIdentifier(tr) + " - Updated" + else: + addNotMigratedEntity(adaptor.__class__.__name__, entity.getIdentifier(tr), "Already in openBIS") + except Exception, error: + addNotMigratedEntity(adaptor.__class__.__name__, entity.getIdentifier(tr), str(error.args)) + #print entity.getIdentifier(tr) + " - Already up to date" + print "- ADAPTOR [" + adaptor.__class__.__name__ + "] FINISH" + print "REPORT START" + printNotMigratedEntities() + definitionsVoc.printCreatedTerms() + print "REPORT FINISH" + print "FINISH!" + +## +## Help Methods +## +def setEntityProperties(tr, definition, entity, properties): + for propertyCode, propertyValue in properties.iteritems(): + propertyDefinition = definitions.getPropertyDefinitionByCode(definition, propertyCode) + if propertyValue is not None: + propertyValue = unicode(propertyValue) + + if propertyDefinition is not None and propertyDefinition[3] == DataType.TIMESTAMP and propertyValue is not None: + date_val = datetime.strptime(propertyValue, "%Y") + propertyValue = datetime.strftime(date_val, "%Y-%m-%d") + + if propertyDefinition is not None and propertyDefinition[3] == DataType.CONTROLLEDVOCABULARY and propertyValue is not None: + possiblePropertyValue = definitionsVoc.getVocabularyTermCodeForVocabularyAndTermLabel(propertyDefinition[4], propertyValue) + if possiblePropertyValue is not None: + propertyValue = possiblePropertyValue + else: #We rely on the Add Hock Terms if is None, since there is no API we create a new one + #Create new vocabulary term + codeToUse = re.sub(r'\W+','_',propertyValue) + labelToUse = propertyValue + if len(codeToUse) is 0: + codeToUse = "None" + str(random.random()) + if len(codeToUse) > 60: + codeToUse = codeToUse[:50] + #Uses new vocabulary term + newTerm = definitionsVoc.createVocabularyTerm(tr, propertyDefinition[4], codeToUse, labelToUse) + propertyValue = newTerm.getCode() + print "* WARNING ENTITY [" + entity.getCode() + "]: for Vocabulary [" + propertyDefinition[4] + "], found value not in list: [" + repr(labelToUse) + "]. Created new term with code [" + codeToUse + "]" + + if propertyDefinition is not None: #Sometimes special fields are added for other purposes, these should not be set + entity.setPropertyValue(propertyCode, propertyValue) + +## +## Generic Pattern +## +class EntityAdaptor: + entities = None + entitiesIdx = None + definition = None + + def init(self): + self.entities = [] + self.entitiesIdx = -1 + pass + + def next(self): + if self.entities is None and self.entitiesIdx is None: + self.init() + self.entitiesIdx += 1 + if len(self.entities) > self.entitiesIdx: + return True + else: + return False + + def addEntity(self, values): + self.entities.append(OpenBISDTO(values, self.definition)) + + def getEntity(self): + return self.entities[self.entitiesIdx] + +class OpenBISDTO: + values = {} + definition = None + + def __init__(self, values, definition): + self.values = values + self.definition = definition + + def getIdentifier(self, tr): + pass + + def isInOpenBIS(self, tr): + pass + + def write(self, tr): + pass + +## +## Costumer specific logic: generic part +## +experimentCache = {} +sampleCache = {} +sampleID2Sample = {} + +def getExperimentForUpdate(experimentIdentifier, experimentType, tr): + if experimentIdentifier not in experimentCache: + #print "Cache failed " + experimentIdentifier + ":" + str(experimentType) + experiment = tr.getExperimentForUpdate(experimentIdentifier) + if experiment is None and experimentType is not None: + #print "Cache Create " + experimentIdentifier + ":" + str(experimentType) + experiment = tr.createNewExperiment(experimentIdentifier, experimentType) + if experiment is not None: + experimentCache[experimentIdentifier] = experiment + else: + pass + #print "Cache hit " + experimentIdentifier + ":" + str(experimentType) + if experimentIdentifier not in experimentCache: + return None + else: + return experimentCache[experimentIdentifier] + +def getSampleForUpdate(sampleIdentifier, sampleType, tr): + if sampleIdentifier not in sampleCache: + #print "Cache failed " + sampleIdentifier + ":" + str(sampleType) + sample = tr.getSampleForUpdate(sampleIdentifier) + if sample is None and sampleType is not None: + #print "Cache Create " + sampleIdentifier + ":" + str(sampleType) + if sampleType == "ANTIBODY": + experiment = getExperimentForUpdate("/MATERIALS/REAGENTS/ANTIBODIES", sampleType, tr) + elif sampleType == "CELL": + experiment = getExperimentForUpdate("/MATERIALS/CELL_LINES/CELL_LINE_COLLECTION_1", sampleType, tr) + elif sampleType == "STRAIN": + experiment = getExperimentForUpdate("/MATERIALS/YEASTS/YEAST_COLLECTION", sampleType, tr) + elif sampleType == "PLASMID": + experiment = getExperimentForUpdate("/MATERIALS/PLASMIDS/PLASMID_COLLECTION_1", sampleType, tr) + elif sampleType == "CHEMICAL": + experiment = getExperimentForUpdate("/MATERIALS/REAGENTS/CHEMICALS", sampleType, tr) + elif sampleType == "SIRNA": + experiment = getExperimentForUpdate("/MATERIALS/POLYNUCLEOTIDES/RNA_COLLECTION_1", sampleType, tr) + elif sampleType == "OLIGO": + experiment = getExperimentForUpdate("/MATERIALS/POLYNUCLEOTIDES/OLIGO_COLLECTION_1", sampleType, tr) + sample = tr.createNewSample(sampleIdentifier, sampleType) + sample.setExperiment(experiment) + if sample is not None: + sampleCache[sampleIdentifier] = sample + else: + pass + #print "Cache hit " + sampleIdentifier + ":" + str(sampleType) + + if sampleIdentifier not in sampleCache: + return None + else: + return sampleCache[sampleIdentifier] + +class FileMakerEntityAdaptor(EntityAdaptor): + connection = None + selectQuery = None + + def __init__(self, fileMakerConnString, fileMakerUser, fileMakerPass, db): + Class.forName("com.filemaker.jdbc.Driver").newInstance() + self.connection = DriverManager.getConnection(fileMakerConnString+db,fileMakerUser, fileMakerPass) + + def init(self): + EntityAdaptor.init(self) + + preparedStatement = self.connection.prepareStatement(self.selectQuery) + result = preparedStatement.executeQuery() + + while result.next(): + values = {} + for property in self.definition: + values[property[0]] = result.getString(property[2]) + self.addEntity(values) + result.close() + preparedStatement.close() + +## +## Customer specific logic: different sample types +## +class FMPeterOpenBISDTO(OpenBISDTO): + def isSampleCacheable(self): + return True + + def isInOpenBIS(self, tr): + code = self.getIdentifier(tr) + if (code is not None) and (' ' not in code): + if self.isSampleCacheable(): + sampleID2Sample[self.values["NAME"]] = self.values + sample = getSampleForUpdate("/MATERIALS/"+code, None, tr) + if sample is not None: + lastModificationData = self.values["MODIFICATION_DATE"].strip() + lastModificationData = str(datetime.strptime(lastModificationData, "%Y-%m-%d"))[:10] + lastModificationOpenBIS = sample.getPropertyValue("MODIFICATION_DATE")[:10] + return lastModificationOpenBIS == lastModificationData + else : + return False + else: + print "* ERROR [" + str(code) + "] - Invalid Code found for '" + self.__class__.__name__ + "'" + raise Exception('Invalid Code found ' + str(code)) + +class FMPeterBoxAdaptor(FileMakerEntityAdaptor): + selectBoxQuery = None + entityIdFieldName = None + entityCodeFieldName = None + + def addEntity(self, values): + self.entities.append(FMPeterEntityBoxOpenBISDTO(values, self.definition)) + + def init(self): + #print "Reading boxes for: " + self.__class__.__name__ + emptyBox = 0 + boxes = {} + EntityAdaptor.init(self) + preparedStatement = self.connection.prepareStatement(self.selectBoxQuery) + result = preparedStatement.executeQuery() + while result.next(): + entityId = unicode(result.getString(self.entityIdFieldName)) + if entityId is not None: + if entityId in sampleID2Sample: + antibodyNumber = sampleID2Sample[entityId][self.entityCodeFieldName] + if antibodyNumber is not None: + values = {} + values["STORAGE_NAME"] = result.getString("location") + values["STORAGE_ROW"] = None + values["STORAGE_COLUMN"] = None + values["STORAGE_BOX_NAME"] = result.getString("box label") + values["STORAGE_BOX_SIZE"] = result.getString("box size") + values["STORAGE_USER"] = result.getString("frozen by") + values["STORAGE_BOX_POSITION"] = result.getString("position") + + allBoxes = [] + if antibodyNumber in boxes: + allBoxes = boxes[antibodyNumber] + else: + boxes[antibodyNumber] = allBoxes + allBoxes.append(values) + else: + #The antibody is not there. What the *#%$& + emptyBox += 1 + else: + #The antibody is not there. What the *#%$& + emptyBox += 1 + + print "- ERROR ADAPTOR Boxes positions with empty entityId for " + self.__class__.__name__ + ":" + str(emptyBox) + + for entiyCode, allBoxes in boxes.iteritems(): + self.addEntity({ + "*CODE" : entiyCode, + "*BOXESLIST" : allBoxes + }) + + result.close() + preparedStatement.close() + +class FMPeterEntityBoxOpenBISDTO(OpenBISDTO): + def getIdentifier(self, tr): + return self.values["*CODE"] + + def write(self, tr): + sample = getSampleForUpdate("/MATERIALS/"+self.values["*CODE"], None, tr) + print "* INFO Boxes size: " + str(len(self.values["*BOXESLIST"])) + #Delete old boxes + for boxNum in range(1, definitions.numberOfStorageGroups+1): + for propertyCode in definitions.getStorageGroupPropertyCodes(): + sample.setPropertyValue(propertyCode + "_" + str(boxNum), None) + + #Add new boxes + boxNum = 0 + for box in self.values["*BOXESLIST"]: + boxNum += 1 + for propertyCode, propertyValue in box.iteritems(): + if propertyCode == "STORAGE_NAME": + freezerName = definitionsVoc.getVocabularyTermCodeForVocabularyAndTermLabel("FREEZER", propertyValue) + if freezerName is None: + #print repr("NOT FOUND FEEZER: " + self.values["ANTIBODY_ID_NR"] + " : '" + unicode(propertyValue) + "'") + propertyValue = None + else: + propertyValue = freezerName + if propertyCode == "STORAGE_USER": + storageUser = definitionsVoc.getVocabularyTermCodeForVocabularyAndTermLabel("ALL_LAB_MEMBERS", propertyValue) + if storageUser is None: + #print repr("NOT FOUND USER: " + self.values["ANTIBODY_ID_NR"] + " : '" + unicode(propertyValue) + "'") + propertyValue = None + else: + propertyValue = storageUser + + if propertyValue is not None: + propertyValue = unicode(propertyValue) + sample.setPropertyValue(propertyCode + "_" + str(boxNum), propertyValue) + + def isBoxPressent(self, boxSignature, tr): + sample = getSampleForUpdate("/MATERIALS/"+self.values["*CODE"], None, tr) + if sample is not None: + for boxNum in range(1, definitions.numberOfStorageGroups+1): + storedSignature = ""; + for propertyCode in definitions.getStorageGroupPropertyCodes(): + propertyValue = sample.getPropertyValue(propertyCode + "_" + str(boxNum)) + if propertyValue is not None: + propertyValue = unicode(propertyValue) + storedSignature += propertyValue + if storedSignature == boxSignature: + #print "Found Box " + storedSignature.encode('ascii', 'ignore') + return True + return False + + def isInOpenBIS(self, tr): + for box in self.values["*BOXESLIST"]: + boxSignature = ""; + for propertyCode in definitions.getStorageGroupPropertyCodes(): + propertyValue = box[propertyCode] + if propertyCode == "STORAGE_NAME": + propertyValue = definitionsVoc.getVocabularyTermCodeForVocabularyAndTermLabel("FREEZER", propertyValue) + if propertyCode == "STORAGE_USER": + propertyValue = definitionsVoc.getVocabularyTermCodeForVocabularyAndTermLabel("LAB_MEMBERS_INITIALS", propertyValue) + + if propertyValue is not None: + propertyValue = unicode(propertyValue) + boxSignature += propertyValue + if not self.isBoxPressent(boxSignature, tr): + return False + return True +## +## Antibodies +## +class AntibodyAdaptor(FileMakerEntityAdaptor): + def init(self): + self.selectQuery = "SELECT * FROM \"boxit antibodies\"" + self.definition = definitions.antibodyDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(AntibodyOpenBISDTO(values, self.definition)) + +class AntibodyOpenBISDTO(FMPeterOpenBISDTO): + def write(self, tr): + sample = getSampleForUpdate("/MATERIALS/"+self.values["ANTIBODY_ID_NR"],"ANTIBODY", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + return self.values["ANTIBODY_ID_NR"] + +class AntibodyBoxAdaptor(FMPeterBoxAdaptor): + selectBoxQuery = "SELECT * FROM \"antibody boxes\"" + entityIdFieldName = "antibody ID" + entityCodeFieldName = "ANTIBODY_ID_NR" + +## +## Cells +## +class CellAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT * FROM \"boxit cells\"" + self.definition = definitions.cellDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(CellOpenBISDTO(values, self.definition)) + +class CellOpenBISDTO(FMPeterOpenBISDTO): + def write(self, tr): + code = self.values["CELL_ID_NR_COPY"] + if code is not None and code.startswith("c_"): + sample = getSampleForUpdate("/MATERIALS/"+code,"CELL", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = self.values["CELL_ID_NR_COPY"] + return code + +class CellBoxAdaptor(FMPeterBoxAdaptor): + selectBoxQuery = "SELECT * FROM \"cell boxes\"" + entityIdFieldName = "cell ID" + entityCodeFieldName = "CELL_ID_NR_COPY" + +## +## Strains +## +class StrainAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT * FROM \"boxit strains\"" + self.definition = definitions.strainDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(StrainOpenBISDTO(values, self.definition)) + +class StrainOpenBISDTO(FMPeterOpenBISDTO): + def write(self, tr): + code = self.values["STRAIN_ID_NR"] + if code is not None: + sample = getSampleForUpdate("/MATERIALS/"+code,"STRAIN", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = self.values["STRAIN_ID_NR"] + return code + +class StrainBoxAdaptor(FMPeterBoxAdaptor): + selectBoxQuery = "SELECT * FROM \"strain boxes\"" + entityIdFieldName = "strain ID" + entityCodeFieldName = "STRAIN_ID_NR" +## +## Plasmids +## +class PlasmidAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT * FROM \"boxit plasmids\"" + self.definition = definitions.plasmidDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(PlasmidOpenBISDTO(values, self.definition)) + +class PlasmidOpenBISDTO(FMPeterOpenBISDTO): + def write(self, tr): + code = self.values["PLASMID_ID_NR"] + if code is not None: + sample = getSampleForUpdate("/MATERIALS/"+code,"PLASMID", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = self.values["PLASMID_ID_NR"] + return code + +class PlasmidBoxAdaptor(FMPeterBoxAdaptor): + selectBoxQuery = "SELECT * FROM \"plasmid boxes\"" + entityIdFieldName = "plasmid ID" + entityCodeFieldName = "PLASMID_ID_NR" + +## +## Oligos +## +class OligoAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT * FROM \"boxit oligos\"" + self.definition = definitions.oligoDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(OligoOpenBISDTO(values, self.definition)) + +class OligoOpenBISDTO(FMPeterOpenBISDTO): + def write(self, tr): + code = self.values["OLIGO_ID_NR"] + if code is not None: + sample = getSampleForUpdate("/MATERIALS/"+code,"OLIGO", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = self.values["OLIGO_ID_NR"] + return code + +class OligoBoxAdaptor(FMPeterBoxAdaptor): + selectBoxQuery = "SELECT * FROM \"oligo boxes\"" + entityIdFieldName = "oligo ID" + entityCodeFieldName = "OLIGO_ID_NR" + +## +## Chemical +## +class ChemicalAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT * FROM \"Chemicals\"" + self.definition = definitions.chemicalDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(ChemicalOpenBISDTO(values, self.definition)) + +class ChemicalOpenBISDTO(FMPeterOpenBISDTO): + def isSampleCacheable(self): + return False + + def write(self, tr): + code = "CHEM_" + self.values["RECORD_NUMBER"] + if code is not None: + sample = getSampleForUpdate("/MATERIALS/"+code,"CHEMICAL", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = "CHEM_" + self.values["RECORD_NUMBER"] + return code + +## +## Sirna +## +class SirnaAdaptor(FileMakerEntityAdaptor): + def init(self): + self.selectQuery = "SELECT * FROM \"siRNA\"" + self.definition = definitions.siRNADefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + self.entities.append(SirnaOpenBISDTO(values, self.definition)) + +class SirnaOpenBISDTO(FMPeterOpenBISDTO): + def isSampleCacheable(self): + return False + + def write(self, tr): + code = "SI_" + self.values["SIRNA_OLIGONUMBER"] + if code is not None: + sample = getSampleForUpdate("/MATERIALS/"+code,"SIRNA", tr) + setEntityProperties(tr, self.definition, sample, self.values); + + def getIdentifier(self, tr): + code = "SI_" +self.values["SIRNA_OLIGONUMBER"] + return code + +## +## Documents +## +class DocumentsAdaptor(FileMakerEntityAdaptor): + + def init(self): + self.selectQuery = "SELECT CAST(file AS VARCHAR(1000)) AS file, info, id_nr, serial, \"date created\", \"date modified\" FROM documents" + self.definition = definitions.documentDefinition + FileMakerEntityAdaptor.init(self) + + def addEntity(self, values): + preparedStatement = self.connection.prepareStatement("SELECT GetAs(file, 'FILE') AS fileData FROM documents WHERE serial = ?"); + preparedStatement.setString(1, values["SERIAL"]); + result = preparedStatement.executeQuery(); + + if result.next(): + fileData = result.getBytes("fileData"); + values["*DATA"] = fileData + + self.entities.append(DocumentOpenBISDTO(values, self.definition)) + +class DocumentOpenBISDTO(OpenBISDTO): + def write(self, tr): + sampleIdentifier = "/MATERIALS/"+self.values["ID_NR"]; + dataSetSample = getSampleForUpdate(sampleIdentifier, None, tr) + if dataSetSample is not None and self.values["*DATA"] is not None and self.values["FILE"] is not None: + print "* INFO DATASET CREATION FOR SERIAL " + self.values["SERIAL"] + " WITH FILE " + self.values["FILE"] + dataSet = tr.createNewDataSet("DOCUMENT") + dataSet.setSample(dataSetSample) + setEntityProperties(tr, self.definition, dataSet, self.values) + absolutePath = tr.createNewFile(dataSet, self.values["FILE"].replace("/", "_")) + f = open(absolutePath, 'wb') + f.write(self.values["*DATA"]) + f.close() + #incoming = tr.getIncoming() + #tr.moveFile(incoming.getAbsolutePath(), dataSet) + else: + if dataSetSample is None: + print "* ERROR No sample found for document" + raise Exception('No sample found for document') + if self.values["*DATA"] is None: + print "* ERROR No Data found for file" + raise Exception('No Data found for file') + if self.values["FILE"] is None: + print "* ERROR No file name found for file" + raise Exception('No file name found for file') + + def getIdentifier(self, tr): + return self.values["SERIAL"] + + def getDocumentBySerial(self, tr, serial): + criteria = SearchCriteria() + criteria.setOperator(criteria.SearchOperator.MATCH_ANY_CLAUSES) + criteria.addMatchClause(criteria.MatchClause.createAttributeMatch(criteria.MatchClauseAttribute.TYPE, "DOCUMENT")) + criteria.addMatchClause(criteria.MatchClause.createPropertyMatch("SERIAL", serial)) + datasets = tr.getSearchService().searchForDataSets(criteria) + if datasets: + return datasets[0] + else: + return None + + def isInOpenBIS(self, tr): + dataset = self.getDocumentBySerial(tr, self.values["SERIAL"]) + return dataset is not None + +#fmConnString = "jdbc:filemaker://127.0.0.1/" +fmConnString = "jdbc:filemaker://fm.ethz.ch/" +fmUser= "designer" +fmPass = "seattle" + +adaptors = [ + AntibodyAdaptor(fmConnString, fmUser, fmPass, "BOXIT_antibodies_Peter"), + AntibodyBoxAdaptor(fmConnString, fmUser, fmPass, "BOXIT_antibody_boxes_Peter"), + PlasmidAdaptor(fmConnString, fmUser, fmPass, "BOXIT_plasmids_Peter"), + PlasmidBoxAdaptor(fmConnString, fmUser, fmPass, "BOXIT_plasmid_boxes_Peter"), + StrainAdaptor(fmConnString, fmUser, fmPass, "BOXIT_strains_Peter"), + StrainBoxAdaptor(fmConnString, fmUser, fmPass, "BOXIT_strain_boxes_Peter"), + OligoAdaptor(fmConnString, fmUser, fmPass, "BOXIT_oligos_Peter"), + OligoBoxAdaptor(fmConnString, fmUser, fmPass, "BOXIT_oligo_boxes_Peter"), + CellAdaptor(fmConnString, fmUser, fmPass, "BOXIT_cells_Peter"), + CellBoxAdaptor(fmConnString, fmUser, fmPass, "BOXIT_cell_boxes_Peter"), + SirnaAdaptor(fmConnString, fmUser, fmPass, "BOXIT_Main_Menu_Peter"), + ChemicalAdaptor(fmConnString, fmUser, fmPass, "BOXIT_Main_Menu_Peter"), + DocumentsAdaptor(fmConnString, fmUser, fmPass, "BOXIT_documents_Peter") + ] + + + +def createDataHierarchy(tr): + inventorySpace = tr.getSpace("MATERIALS") + if inventorySpace == None: + tr.createNewSpace("MATERIALS", None) + tr.createNewProject("/MATERIALS/REAGENTS") + tr.createNewProject("/MATERIALS/CELL_LINES") + tr.createNewProject("/MATERIALS/POLYNUCLEOTIDES") + tr.createNewProject("/MATERIALS/PLASMIDS") + tr.createNewProject("/MATERIALS/YEASTS") + + \ No newline at end of file diff --git a/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/plugin.properties b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/plugin.properties new file mode 100644 index 0000000000000000000000000000000000000000..54f2044ddda7bb67c827931911974a3ed40540c7 --- /dev/null +++ b/plasmid/source/core-plugins/petermigration/2/dss/drop-boxes/petermigration/plugin.properties @@ -0,0 +1,9 @@ +## +## Defaults +## +incoming-data-completeness-condition = auto-detection +top-level-data-set-handler = ch.systemsx.cisd.etlserver.registrator.api.v2.JythonTopLevelDataSetHandlerV2 +storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor +script-path = migration.py +dropbox-name = petermigration +incoming-dir = ${root-dir}/petermigration \ No newline at end of file