class ReadGroup(db.Model, Base): """ ReadGroup entity. :param kf_id: Unique id given by the Kid's First DCC :param external_id: Name given to sequencing experiment by contributor :param paired_end: The direction of the read :param flow_cell: The identifier for the group's flow cell :param lane_number: The group's lane :param quality_scale: The quality score encoding of the fastq file """ __tablename__ = 'read_group' __prefix__ = 'RG' external_id = db.Column(db.Text(), nullable=True, doc='Name given to read group by the contributor') flow_cell = db.Column(db.Text(), doc='The identifier of the group\'s flow cell') lane_number = db.Column(db.Float(), doc='The group\'s lane') quality_scale = db.Column(db.Text(), doc='The scale used to encode quality scores') genomic_files = association_proxy( 'read_group_genomic_files', 'genomic_file', creator=lambda gf: ReadGroupGenomicFile(genomic_file=gf)) read_group_genomic_files = db.relationship('ReadGroupGenomicFile', backref='read_group', cascade='all, delete-orphan')
class SequencingExperiment(db.Model, Base): """ SequencingExperiment entity. :param kf_id: Unique id given by the Kid's First DCC :param external_id: Name given to sequencing experiment by contributor :param experiment_date : Date of the sequencing experiment conducted :param experiment_strategy: Text term that represents the library strategy :param library_name: Text term that represents the name of the library :param library_strand: Text term that represents the library stranded-ness :param is_paired_end: Boolean term specifies whether reads have paired end :param platform: Name of the platform used to obtain data :param instrument_model: Text term that represents the model of instrument :param max_insert_size: Maximum size of the fragmented DNA :param mean_insert_size: Mean size of the fragmented DNA :param mean_depth: (Coverage)Describes the amount of sequence data that is available per position in the sequenced genome territory :param total_reads: Total reads of the sequencing experiment :param mean_read_length: Mean lenth of the reads """ __tablename__ = 'sequencing_experiment' __prefix__ = 'SE' external_id = db.Column(db.Text(), nullable=False, doc='Name given to sequencing experiment by' ' contributor') experiment_date = db.Column(db.DateTime(), doc='Date of the sequencing experiment' ' conducted') experiment_strategy = db.Column(db.Text(), nullable=False, doc='Text term that represents the' ' Library strategy') library_name = db.Column(db.Text(), doc='Text term that represents the name of the' ' library') library_strand = db.Column(db.Text(), doc='Text term that represents the' ' library stranded-ness') is_paired_end = db.Column(db.Boolean(), nullable=False, doc='Boolean term specifies whether reads have' ' paired end') platform = db.Column(db.Text(), nullable=False, doc='Name of the platform used to obtain data') instrument_model = db.Column(db.Text(), doc='Text term that represents the model of' ' instrument') max_insert_size = db.Column(db.Integer(), doc='Maximum size of the fragmented DNA') mean_insert_size = db.Column(db.Float(), doc='Mean size of the fragmented DNA') mean_depth = db.Column(db.Float(), doc='Mean depth or coverage describes the amount of' ' sequence data that is available per position in' ' the sequenced genome territory') total_reads = db.Column(db.Integer(), doc='Total reads of the sequencing experiment') mean_read_length = db.Column(db.Float(), doc='Mean lenth of the reads') genomic_files = db.relationship(GenomicFile, backref=db.backref( 'sequencing_experiment', lazy=True)) sequencing_center_id = db.Column(KfId(), db.ForeignKey('sequencing_center.kf_id'), nullable=False, doc='The kf_id of the sequencing center')
class Biospecimen(db.Model, Base): """ Biospecimen entity. :param kf_id: Unique id given by the Kid's First DCC :param external_sample_id: Name given to sample by contributor :param external_aliquot_id: Name given to aliquot by contributor :param composition : The cellular composition of the biospecimen. :param source_text_tissue_type: description of the kind of tissue collected with respect to disease status or proximity to tumor tissue :param source_text_anatomical_site : The name of the primary disease site of the submitted tumor biospecimen :param age_at_event_days: Age at the time biospecimen was acquired, expressed in number of days since birth :param source_text_tumor_descriptor: The kind of disease present in the tumor specimen as related to a specific timepoint :param shipment_origin : The origin of the shipment :param analyte_type: Text term that represents the kind of molecular specimen analyte :param concentration_mg_per_ml: The concentration of an analyte or aliquot extracted from the biospecimen or biospecimen portion, measured in milligrams per milliliter :param volume_ul: The volume in microliters (ul) of the aliquots derived from the analyte(s) shipped for sequencing and characterization :param shipment_date: The date item was shipped in YYYY-MM-DD format :param uberon_id_anatomical_site: The ID of the term from Uber-anatomy ontology which represents harmonized anatomical ontologies :param ncit_id_tissue_type: The ID term from the National Cancer Institute Thesaurus which represents a harmonized tissue_type :param ncit_id_anatomical_site: The ID term from the National Cancer Institute Thesaurus which represents a harmonized anatomical_site :param spatial_descriptor: Ontology term that harmonizes the spatial concepts from Biological Spatial Ontology :param consent_type: Short name of consent :param dbgap_consent_code: Consent classification code from dbgap """ __tablename__ = 'biospecimen' __prefix__ = 'BS' external_sample_id = db.Column(db.Text(), doc='Name given to sample by contributor') external_aliquot_id = db.Column(db.Text(), doc='Name given to aliquot by contributor') source_text_tissue_type = db.Column(db.Text(), doc='Description of the kind of ' 'biospecimen collected') composition = db.Column(db.Text(), doc='The cellular composition of the biospecimen') source_text_anatomical_site = db.Column(db.Text(), doc='The anatomical location of ' 'collection') age_at_event_days = db.Column(db.Integer(), doc='Age at the time of event occurred in ' 'number of days since birth.') source_text_tumor_descriptor = db.Column(db.Text(), doc='Disease present in the ' 'biospecimen') shipment_origin = db.Column(db.Text(), doc='The original site of the aliquot') analyte_type = db.Column(db.Text(), nullable=False, doc='The molecular description of the aliquot') concentration_mg_per_ml = db.Column(db.Float(), doc='The concentration of the aliquot') volume_ul = db.Column(db.Float(), doc='The volume of the aliquot') shipment_date = db.Column(db.DateTime(), doc='The date the aliquot was shipped') uberon_id_anatomical_site = db.Column(db.Text(), doc='The ID of the term from ' 'Uber-anatomy ontology which ' 'represents harmonized anatomical' ' ontologies') ncit_id_tissue_type = db.Column(db.Text(), doc='The ID term from the National Cancer' 'Institute Thesaurus which represents a ' 'harmonized tissue_type') ncit_id_anatomical_site = db.Column(db.Text(), doc='The ID term from the National' 'Cancer Institute Thesaurus which ' 'represents a harmonized' ' anatomical_site') spatial_descriptor = db.Column(db.Text(), doc='Ontology term that harmonizes the' 'spatial concepts from Biological Spatial' ' Ontology') method_of_sample_procurement = db.Column(db.Text(), doc='The method used to procure ' 'the sample used to extract ' 'analyte(s)') participant_id = db.Column(KfId(), db.ForeignKey('participant.kf_id'), nullable=False, doc='The kf_id of the biospecimen\'s donor') sequencing_center_id = db.Column(KfId(), db.ForeignKey('sequencing_center.kf_id'), nullable=False, doc='The kf_id of the sequencing center') consent_type = db.Column(db.Text(), doc='Short name of consent') dbgap_consent_code = db.Column( db.Text(), doc='Consent classification code from dbgap') genomic_files = association_proxy( 'biospecimen_genomic_files', 'genomic_file', creator=lambda genomic_file: BiospecimenGenomicFile(genomic_file= genomic_file)) diagnoses = association_proxy( 'biospecimen_diagnoses', 'diagnosis', creator=lambda dg: BiospecimenDiagnosis(diagnosis=dg)) biospecimen_genomic_files = db.relationship(BiospecimenGenomicFile, backref='biospecimen', cascade='all, delete-orphan')