class Outcome(db.Model, Base): """ Outcome entity. :param kf_id: Unique id given by the Kid's First DCC :param created_at: Time of object creation :param modified_at: Last time of object modification :param external_id: Name given to outcome by contributor :param vital_status: Vital status of the participant :param disease_related: true if Deceased and cause of death was disease related , false if Deceasedand cause of death was disease related, Not Reported :param age_at_event_days: Age at the time of outcome occured in number of days since birth. """ __tablename__ = 'outcome' __prefix__ = 'OC' external_id = db.Column(db.Text(), doc='external id used by contributor') vital_status = db.Column(db.Text(), doc='The vital status reported') disease_related = db.Column(db.Text()) age_at_event_days = db.Column(db.Integer(), doc='Age at the time of event occurred in ' 'number of days since birth.') participant_id = db.Column(KfId(), db.ForeignKey('participant.kf_id'), nullable=False, doc='kf_id of the participant this outcome was ' 'reported for')
class Phenotype(db.Model, Base): """ Phenotype entity. :param kf_id: Unique id given by the Kid's First DCC :param created_at: Time of object creation :param modified_at: Last time of object modification :param external_id: Name given to phenotype by contributor :param source_text_phenotype: Name given to Phenotype by contributor :param hpo_id_phenotype: The ID of the term from the Human Phenotype Ontology which represents a harmonized phenotype :param snomed_id_phenotype: The ID of the term from Systematized Nomenclature of Medicine -- Clinical Terms which encodes clinical terminology :param observed: whether phenotype is negative or positive :param age_at_event_days: Age at the time phenotype was observed, expressed in number of days since birth """ __tablename__ = 'phenotype' __prefix__ = 'PH' external_id = db.Column(db.Text(), doc='external id used by contributor') source_text_phenotype = db.Column(db.Text(), doc='Name given to Phenotype by ' 'contributor') hpo_id_phenotype = db.Column(db.Text(), doc='The ID of the term from Human Phenotype ' 'Ontology which represents a harmonized' ' phenotype') snomed_id_phenotype = db.Column(db.Text(), doc='The ID of the term from Systematized ' 'Nomenclature of Medicine --Clinical Terms' ' which encodes clinical terminology') observed = db.Column(db.Text(), doc='whether phenotype is negative or positive') age_at_event_days = db.Column(db.Integer(), doc='Age at the time of event occurred in ' 'number of days since birth') participant_id = db.Column(KfId(), db.ForeignKey('participant.kf_id'), nullable=False)
class CavaticaApp(db.Model, Base): """ CavaticaApp entity. :param kf_id: Unique id given by the Kid's First DCC :param external_cavatica_app_id: Id given to Cavatica app by user :param name: Name given to Cavatica app by user :param revision: Revision number of the Cavatica app :param github_commit_url: GitHub URL to the last git commit made for app """ __tablename__ = 'cavatica_app' __prefix__ = 'CA' external_cavatica_app_id = db.Column( db.Text(), doc='Id given to Cavatica app by Cavatica user') name = db.Column(db.Text(), doc='Name given to Cavatica app by Cavatica user') revision = db.Column(db.Integer(), doc='Revision number of the' ' Cavatica app assigned by Cavatica user') github_commit_url = db.Column(db.Text(), doc='Link to git commit on GitHub') tasks = db.relationship(Task, backref='cavatica_app')
class Diagnosis(db.Model, Base): """ Diagnosis entity. :param _id: Unique id assigned by RDBMS :param kf_id: Unique id given by the Kid's First DCC :param created_at: Time of object creation :param modified_at: Last time of object modification :param external_id: Name given to diagnosis by contributor :param source_text_diagnosis: Diagnosis of the participant :param diagnosis_category: High level diagnosis categorization :param source_text_tumor_location: Location of the tumor :param age_at_event_days: Age at the time of diagnosis expressed in number of days since birth :param mondo_id_diagnosis: The ID of the term from the Monary Disease Ontology which represents a harmonized diagnosis :param icd_id_diagnosis: The ID of the term from the International Classification of Diseases which represents a harmonized diagnosis :param uberon_id_tumor_location: The ID of the term from Uber-anatomy ontology which represents harmonized anatomical ontologies :param ncit_id_diagnosis: The ID term from the National Cancer Institute Thesaurus which represents a harmonized diagnosis :param spatial_descriptor: Ontology term that harmonizes the spatial concepts from Biological Spatial Ontology """ __tablename__ = 'diagnosis' __prefix__ = 'DG' external_id = db.Column(db.Text(), doc='external id used by contributor') source_text_diagnosis = db.Column(db.Text(), doc='the pathological diagnosis') diagnosis_category = db.Column(db.Text(), doc='High level diagnosis categorization') source_text_tumor_location = db.Column(db.Text(), doc='location of the tumor') age_at_event_days = db.Column(db.Integer(), doc='Age at the time of event occurred in ' 'number of days since birth') mondo_id_diagnosis = db.Column(db.Text(), doc='The ID of the term from the Monary ' 'Disease Ontology which represents a' ' harmonized diagnosis') icd_id_diagnosis = db.Column(db.Text(), doc='The ID of the term from the' ' International Classification of Diseases' ' which represents harmonized diagnosis') uberon_id_tumor_location = db.Column(db.Text(), doc='The ID of the term from Uber ' 'anatomy ontology which represents' ' harmonized anatomical ontologies') ncit_id_diagnosis = db.Column(db.Text(), doc='The ID term from the National Cancer' ' Institute Thesaurus which represents a' ' harmonized diagnosis') spatial_descriptor = db.Column(db.Text(), doc='Ontology term that harmonizes the' 'spatial concepts from Biological Spatial' ' Ontology') participant_id = db.Column(KfId(), db.ForeignKey('participant.kf_id'), doc='the participant who was diagnosed', nullable=False)
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')