Marker ER diagram Version: 2.7.0

Maker module of KDDart. This module is implemented in MonetDB, so relevant sql has to be generated.

[BACK TO TOP]

Region: Analysis definitions and results

Table: analysisgroupTable for grouping extracts into an analytical unit or group. Potentially a population (parents + progeny) or other arbitrary grouping for which extracts have been, or will be, created to run genotypic analysis. The analysisgroup could equate to a shipment although the group only relates to a single type of marker. For additional marker types the analysisgroup can replicated to reference the separate marker type results. Combining data from various analysisgroups into another subset is possible, but requires analytical process.

ColNameDatatypePKFKAINNDefaultValueComments
AnalysisGroupIdINTEGERPK AINNid of the group
AnalysisGroupNameVARCHAR(100)   NNname of the group
AnalysisGroupDescriptionVARCHAR(254)    description for the group
ContactIdINTEGER    (FK) link to contact, who can be analyst, data owner or analysis manager
DateCreatedDATETIME    creation time of the analysis group
DateUpdatedDATETIME    last update date time of the analysis group
AnalysisGroupMetaDataTEXT    Meta data for analysis group in JSON serialize format
OwnGroupIdINTEGER   NNgroup id which owns the record
AccessGroupIdINTEGER   NN0group id which can access the record (different than owngroup)
OwnGroupPermTINYINT   NNpermission for the own group members
AccessGroupPermTINYINT   NN0permission for other group members
OtherPermTINYINT   NN0permission for all other system users
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`AnalysisGroupId`
xag_AnalysisGroupNameUNIQUE`AnalysisGroupName`
xag_OwnGroupIdINDEX`OwnGroupId`
xag_AccessGroupIdINDEX`AccessGroupId`
xag_OwnGroupPermINDEX`OwnGroupPerm`
xag_AccessGroupPermINDEX`AccessGroupPerm`
xag_OtherPermINDEX`OtherPerm`
xag_DateCreatedINDEX`DateCreated`
xag_DateUpdatedINDEX`DateUpdated`


Table: analysisgroupfactorAdditional virtual columns for analysisgroup.

ColNameDatatypePKFKAINNDefaultValueComments
AnalysisGroupIdINTEGERPKFK NNanalysis group id
FactorIdINTEGERPK  NN(FK) id of factor column
FactorValueVARCHAR(254)   NNfactor value
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`AnalysisGroupId`, `FactorId`
xagf_FactorIdINDEX`FactorId`


[BACK TO TOP]

Region: Extract DataData for samples and subsamples

Table: extractdataEach extract may have a several individual subsamples that has been processed (sequenced) for it and delivered as data points or data files. This entity is a register of those sub(samples) and individual data files delivered with them.

ColNameDatatypePKFKAINNDefaultValueComments
ExtractDataIdINTEGERPK AINNInternal extract data id
AnalGroupExtractIdINTEGER FK NNExtract in analysis group for which data are being imported
OperatorIdINTEGER   NN(FK) system user who created the record
DateCreatedDATETIME   NNdate when record was created
ExternalIdVARCHAR(254)    external identification - could be target id from DArT or any other unique identifier of extract sample as the reference to the external source
ExtractDataMetaTEXT    meta information about extract data record - json object
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`ExtractDataId`
xed_OperatorIdINDEX`OperatorId`
xed_DateCreatedINDEX`DateCreated`
xed_ExternalIdINDEX`ExternalId`
xed_AnalGroupExtractIdINDEX`AnalGroupExtractId`


Table: extractdatafileData file for extract data record.

ColNameDatatypePKFKAINNDefaultValueComments
ExtractDataFileIdINTEGERPK AINNinternal extract data file id
ExtractDataIdINTEGER FK NNextract data record that file refers to
OperatorIdINTEGER   NN(FK) operator id - who uploaded or created the file
FileTypeINTEGER   NN(FK) file type - should be a controlled set of known file types from general type - to start with - fastq, fastqcol, fasta, vcf
UploadTimeDATETIME   NNtime of the file upload
FileExtensionVARCHAR(10)    file extension
FileMetaTEXT    meta data about the file - json object storing potentially file size, md5 sum, compression algorithm, etc.
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`ExtractDataFileId`
xedf_ExtractDataIdINDEX`ExtractDataId`
xedf_OperatorIdINDEX`OperatorId`
xedf_FileTypeINDEX`FileType`
xedf_UploadTimeINDEX`UploadTime`
xedf_FileExtensionINDEX`FileExtension`


[BACK TO TOP]

Region: Extracts

Table: extractStore of DNA extracts created from plant samples. Inventory of samples resides in the item table and a group of items is a source for DNA extract.

ColNameDatatypePKFKAINNDefaultValueComments
ExtractIdINTEGERPK AINNDNA extract id
ParentExtractIdINTEGER FK  id of the parent extract (e.g. aliquote from another well)
PlateIdINTEGER FK  plate id
ItemGroupIdINTEGER    (FK) to itemgroup table from the core database, which could be a single or group of samples, from which the extract has been derived
GenotypeIdINTEGER    (FK) optional genotype id in case specimen has more than one genotype assigned
TissueINTEGER   NN(FK) name of the tissue from which DNA has been extracted, class tissue in generaltype table
WellRowVARCHAR(4)    optional information about well row position in the plate
WellColVARCHAR(4)    optional information about well col position in the plate
QualityVARCHAR(30)    Quality description of this particular extract
StatusVARCHAR(30)    Status flag for this extract (e.g. dont use, old, usedup, etc)
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`ExtractId`
xpe_PlateIdINDEX`PlateId`
xpe_ItemGroupIdINDEX`ItemGroupId`
xpe_GenotypeIdINDEX`GenotypeId`
xpe_ParentExtractIdINDEX`ParentExtractId`
xpe_TissueINDEX`Tissue`


Table: plateTable to group extracts into plates. A group of plates can be a shipment unit.

ColNameDatatypePKFKAINNDefaultValueComments
PlateIdINTEGERPK AINNplate internal id
PlateNameVARCHAR(60)   NNcan be a barcode or some arbitrary name
DateCreatedDATETIME   NNdate when plate was created
OperatorIdINTEGER   NN(FK) to system user, who created the plate in the system
PlateTypeINTEGER    (FK) type of plate (from general type class plate)
PlateDescriptionVARCHAR(254)    some text describing it
StorageIdINTEGER    (FK) to storage table in core database
PlateWellsINTEGER    Number of wells in the plate (will determine valid row and column names)
PlateStatusVARCHAR(100)    Status (like destroyed, master copy, shipped for genotyping, etc)
PlateMetaDataTEXT    Meta data for plate in JSON serialized format
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`PlateId`
xp_PlateNameUNIQUE`PlateName`
xp_StorageIdINDEX`StorageId`
xp_OperatorIdINDEX`OperatorId`
xp_PlateTypeINDEX`PlateType`
xp_DateCreatedINDEX`DateCreated`


Table: extractfactorAdditional virtual columns for extracts.

ColNameDatatypePKFKAINNDefaultValueComments
ExtractIdINTEGERPKFK NNExtract id
FactorIdINTEGERPK  NNfactor column id
FactorValueVARCHAR(254)   NNfactor value
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`ExtractId`, `FactorId`
xdef_FactorIdINDEX`FactorId`


Table: platefactorAdditional virtual columns for plates.

ColNameDatatypePKFKAINNDefaultValueComments
PlateIdINTEGERPKFK NNplate id
FactorIdINTEGERPK  NN(FK) factor column id
FactorValueVARCHAR(254)   NNfactor value
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`PlateId`, `FactorId`
xpf_FactorIdINDEX`FactorId`


Table: analgroupextractMaintains the many to many relationship between analysisgroup and DNA extracts, e.g. to group one shipment for genotyping. Combining various subsets of analysisgroup for analytical purposes can be done on request from existing imported data. Analysisgroup here is in fact a unit of data import.

ColNameDatatypePKFKAINNDefaultValueComments
AnalGroupExtractIdINTEGERPK AINNinternal id
ExtractIdINTEGER FK NNextract id
AnalysisGroupIdINTEGER FK NNanalysis group id - associated with dna extract(s)
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`AnalGroupExtractId`
xagde_analysisgroupidINDEX`AnalysisGroupId`
xagde_extractidINDEX`ExtractId`


[BACK TO TOP]

Region: MappingGenetic and physical mapping

Table: markermapStoring physical or genetic map data. Maps can be created by genetic mapping software or alignment software.

ColNameDatatypePKFKAINNDefaultValueComments
MarkerMapIdINTEGERPK AINNinternal map id
MapNameVARCHAR(254)   NNname of the map
MapTypeINTEGER   NN(FK) to generaltype table class genmap - type of the map (e.g. physical, genetic, consensus, etc)
OperatorIdINTEGER   NN(FK) to systemuser - user who created the map
ModelRefTEXT    model reference info - for physical maps
MapDescriptionTEXT    general description of the map
MapSoftwareVARCHAR(254)    software (version) used to create the map
MapParametersTEXT    map parameters (also software parameters) used for creation
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`MarkerMapId`
xmm_MapNameUNIQUE`MapName`
xmm_MapTypeINDEX`MapType`
xmm_OperatorIdINDEX`OperatorId`


Table: markermapgroupGrouping maps (e.g. when creating consensus map and using other maps as a source of data)

ColNameDatatypePKFKAINNDefaultValueComments
MarkerMapGroupIdINTEGERPK AINNinternal id
GroupNameVARCHAR(254)   NNgroup name
ChildMapIdINTEGER FK NNid of the map, which is a part of the group
ParentMapIdINTEGER FK NNid of the map, which is the parent for other maps
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`MarkerMapGroupId`
xmmg_ChildMapIdINDEX`ChildMapId`
xmmg_ParentMapIdINDEX`ParentMapId`
xmmg_GroupNameUNIQUE`GroupName`


Table: markermappositionMarkers positions in the map. We may link to marker table to retrive names, etc. but we also may store marker name in case we create e.g. consensus map and we are refering to many marker records of course named the same way.

ColNameDatatypePKFKAINNDefaultValueComments
MarkerMapPositionIdINTEGERPK AINNinternal id
AnalysisGroupMarkerIdINTEGER FK  analysis group marker id - if linked with particular marker
MarkerMapIdINTEGER FK NNwhich map this entry belongs to
MarkerNameVARCHAR(60)    optional marker name in case record is not linked to analysisgroupmarker table (e.g. for consensus map)
ContigNameVARCHAR(60)   NNname of contig (chromosome, linkage group, scaffold, etc)
ContigPositionVARCHAR(60)   NNgenetic of physical position on contig
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`MarkerMapPositionId`
xagmm_MarkerMapIdINDEX`MarkerMapId`
xagmm_MarkerNameINDEX`MarkerName`
xagmm_ContigNameINDEX`ContigName`
xagmm_ContigPositionINDEX`ContigPosition`
xagmm_AnalysisGroupMarkerIdINDEX`AnalysisGroupMarkerId`


[BACK TO TOP]

Region: Markers

Table: analysisgroupmarkerMaintains the many to many relationship between an AnalysisGroup and markers. Marker quality and metadata can be stored in factor table, but perhaps better mechanism should be invented for per marker values.

ColNameDatatypePKFKAINNDefaultValueComments
AnalysisGroupMarkerIdINTEGERPK AINNinternal id
DataSetIdINTEGER FK NNdata set id, where marker belongs to
MarkerNameVARCHAR(60)   NNname of the marker
MarkerSequenceTEXT    sequence of the marker [e.g. ACGT]
MarkerDescriptionVARCHAR(254)    can be any additional information about the marker like e.g. SNP position (A\gT:30) or SSR primer or marker method description, etc
MarkerExtRefTEXT    URL or other external reference where additional marker info can be found e.g. link to NCBI
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`AnalysisGroupMarkerId`
xagm_MarkerNameINDEX`MarkerName`
xagm_DataSetIdINDEX`DataSetId`


Table: markeraliasAlias names for markers - if they are known under various naming conventions.

ColNameDatatypePKFKAINNDefaultValueComments
MarkerAliasIdINTEGERPK AINNinternal id
AnalysisGroupMarkerIdINTEGER FK NNoriginal marker id
MarkerAliasNameVARCHAR(60)   NNstring with marker alias
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`MarkerAliasId`
xma_AliasNameINDEX`MarkerAliasName`
xma_AnalysisGroupMarkerIdINDEX`AnalysisGroupMarkerId`


[BACK TO TOP]

Region: Scoring and meta data for markers

Table: datasetData set for analysis group. New e.g. import for set (subset) of samples providing new set of markers. Markers are not restricted . Any set can be imported.

ColNameDatatypePKFKAINNDefaultValueComments
DataSetIdINTEGERPK AINNinternal id
AnalysisGroupIdINTEGER FK NNanalysis group id
MarkerNameFieldNameVARCHAR(254)    field name of the marker name in the actual data set table e.g. CloneId
MarkerSequenceFieldNameVARCHAR(254)    field name of the marker sequence in the actual data set table e.g. Sequence
ParentDataSetIdINTEGER FK  parent data set to which this data set is complement
DataSetTypeINTEGER   NNtype of data set e.g. scoring, count or other quality data
DateCreatedDATETIME    date time when dataset was created
DateUpdatedDATETIME    date time when dataset was last updated
DescriptionVARCHAR(254)    optional description of the data set
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`DataSetId`
xds_AnalysisGroupIdINDEX`AnalysisGroupId`
xds_ParentDataSetIdINDEX`ParentDataSetId`
xds_DateCreatedINDEX`DateCreated`
xds_DateUpdatedINDEX`DateUpdated`


Table: datasetmarkermetaMetadata fields attached to the dataset.

ColNameDatatypePKFKAINNDefaultValueComments
DataSetMarkerMetaIdINTEGERPK AINNinternal id
DataSetIdINTEGER FK  data set id
FactorIdINTEGER    factor id - link to factor table in the core module
FieldNameVARCHAR(254)    field name of the meta data in the actual data set table
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`DataSetMarkerMetaId`
xdsmm_DataSetIdINDEX`DataSetId`
xdsmm_FactorIdINDEX`FactorId`


Table: datasetextractActual list of samples in imported dataset. Should be the same or the subset of analysisgroup samples.

ColNameDatatypePKFKAINNDefaultValueComments
DataSetExtractIdINTEGERPK AINNinternal id
DataSetIdINTEGER FK  data set id
AnalGroupExtractIdINTEGER FK  analysis group extract id
FieldNameVARCHAR(254)    field name for the extract in the actual data set table
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`DataSetExtractId`
xdse_DataSetIdINDEX`DataSetId`
xdse_AnalGroupExtractIdINDEX`AnalGroupExtractId`


[BACK TO TOP]

Region: TableCommentsTable with field comments

Table: fieldcommentSource of comments for the fields and tables - as MonetDB does not support it as mysql or postgresql, they are stored in this table and DAL use them as a source for help operations

ColNameDatatypePKFKAINNDefaultValueComments
TableNameVARCHAR(254)PK  NNname of the table
FieldNameVARCHAR(254)PK  NNname of the field
FieldCommentTEXT   NNcomment for the field in the table
PrimaryKeyTINYINT   NN[0|1] flag if field is primary key
IndexNameIndexTypeColumns
PRIMARYPRIMARY KEY`TableName`, `FieldName`


[BACK TO TOP]

RELATIONSlist of model relations

RelNameRelTypeFromTableToTableCreateRefDef
Plate+Ext1..n (NA)plate extract1
Ext+ExtF1..n (NA)extract extractfactor1
Plate+PlateF1..n (NA)plate platefactor1
AnGrp+AnGrpF1..n (NA)analysisgroup analysisgroupfactor1
AnGrp+AnGrpExtract1..n (NA)analysisgroup analgroupextract1
Ext+AnGrpExt1..n (NA)extract analgroupextract1
AnGrpMark+MarkA1..n (NA)analysisgroupmarker markeralias1
Ext+ExtPar1..n (NA)extract extract0
MarkMap+ChildMap1..n (NA)markermap markermapgroup1
MarkMap+ParMap1..n (NA)markermap markermapgroup0
MarkMap+MarkMapPos1..n (NA)markermap markermapposition0
DataSet+DataSetMarker1..n (NA)dataset analysisgroupmarker1
AnalGrp+DataSet1..n (NA)analysisgroup dataset1
DataSet+MarkerMeta1..n (NA)dataset datasetmarkermeta1
DataSet+DataSetExtract1..n (NA)dataset datasetextract1
AnalGrpExt+DataSetExt1..n (NA)analgroupextract datasetextract0
DataSet+Parent1..n (NA)dataset dataset0
AnGrpMark+MarkMapPos1..n (NA)analysisgroupmarker markermapposition0
ExtData+ExtDataFile1..n (NA)extractdata extractdatafile0
AnGrpExt+ExtData1..n (NA)analgroupextract extractdata1