def _add_evidence( self, assoc_id, eco_id, p_value, percentage_change, effect_size, study_bnode ): """ :param assoc_id: assoc curie used to reify a genotype to phenotype association, generated in _process_data() :param eco_id: eco_id as curie, hardcoded in _process_data() :param p_value: str, from self.files['all'] :param percentage_change: str, from self.files['all'] :param effect_size: str, from self.files['all'] :param study_bnode: str, from self.files['all'] :param phenotyping_center: str, from self.files['all'] :return: str, evidence_line_bnode as curie """ evidence_model = Evidence(self.graph, assoc_id) provenance_model = Provenance(self.graph) model = Model(self.graph) # Add line of evidence evidence_line_bnode = self.make_id( "{0}{1}".format(assoc_id, study_bnode), '_') evidence_model.add_supporting_evidence(evidence_line_bnode) model.addIndividualToGraph(evidence_line_bnode, None, eco_id) # Add supporting measurements to line of evidence measurements = {} if p_value is not None or p_value != "": p_value_bnode = self.make_id( "{0}{1}{2}".format(evidence_line_bnode, 'p_value', p_value), '_') model.addIndividualToGraph(p_value_bnode, None, self.globaltt['p-value']) try: measurements[p_value_bnode] = float(p_value) except ValueError: measurements[p_value_bnode] = p_value if percentage_change is not None and percentage_change != '': fold_change_bnode = self.make_id( "{0}{1}{2}".format( evidence_line_bnode, 'percentage_change', percentage_change), '_') model.addIndividualToGraph( fold_change_bnode, None, self.resolve('percentage_change')) measurements[fold_change_bnode] = percentage_change if effect_size is not None or effect_size != "": fold_change_bnode = self.make_id( "{0}{1}{2}".format( evidence_line_bnode, 'effect_size', effect_size), '_') model.addIndividualToGraph( fold_change_bnode, None, self.globaltt['effect size estimate']) measurements[fold_change_bnode] = effect_size evidence_model.add_supporting_data(evidence_line_bnode, measurements) # Link evidence to provenance by connecting to study node provenance_model.add_study_to_measurements(study_bnode, measurements.keys()) self.graph.addTriple( evidence_line_bnode, self.globaltt['has_supporting_activity'], study_bnode) return evidence_line_bnode
def _add_evidence( self, assoc_id, eco_id, p_value, percentage_change, effect_size, study_bnode ): """ :param assoc_id: assoc curie used to reify a genotype to phenotype association, generated in _process_data() :param eco_id: eco_id as curie, hardcoded in _process_data() :param p_value: str, from self.files['all'] :param percentage_change: str, from self.files['all'] :param effect_size: str, from self.files['all'] :param study_bnode: str, from self.files['all'] :param phenotyping_center: str, from self.files['all'] :return: str, evidence_line_bnode as curie """ evidence_model = Evidence(self.graph, assoc_id) provenance_model = Provenance(self.graph) model = Model(self.graph) # Add line of evidence evidence_line_bnode = self.make_id( "{0}{1}".format(assoc_id, study_bnode), '_') evidence_model.add_supporting_evidence(evidence_line_bnode) model.addIndividualToGraph(evidence_line_bnode, None, eco_id) # Add supporting measurements to line of evidence measurements = {} if p_value is not None or p_value != "": p_value_bnode = self.make_id( "{0}{1}{2}".format(evidence_line_bnode, 'p_value', p_value), '_') model.addIndividualToGraph(p_value_bnode, None, self.globaltt['p-value']) try: measurements[p_value_bnode] = float(p_value) except ValueError: measurements[p_value_bnode] = p_value if percentage_change is not None and percentage_change != '': fold_change_bnode = self.make_id( "{0}{1}{2}".format( evidence_line_bnode, 'percentage_change', percentage_change), '_') model.addIndividualToGraph( fold_change_bnode, None, self.resolve('percentage_change')) measurements[fold_change_bnode] = percentage_change if effect_size is not None or effect_size != "": fold_change_bnode = self.make_id( "{0}{1}{2}".format( evidence_line_bnode, 'effect_size', effect_size), '_') model.addIndividualToGraph( fold_change_bnode, None, self.globaltt['effect size estimate']) measurements[fold_change_bnode] = effect_size evidence_model.add_supporting_data(evidence_line_bnode, measurements) # Link evidence to provenance by connecting to study node provenance_model.add_study_to_measurements(study_bnode, measurements.keys()) self.graph.addTriple( evidence_line_bnode, self.globaltt['has_evidence_item_output_from'], study_bnode) return evidence_line_bnode
def _add_outcome_evidence(self, association, outcome): """ :param association: str association curie :param outcome: dict (json) :return: None """ evidence = Evidence(self.graph, association) source = { 'curie': "DOI:10.5061/dryad.8q0s4/1", 'label': "Data from: A curated and standardized adverse " "drug event resource to accelerate drug safety research", 'type': self.globaltt['data set'] } reference = { 'curie': "PMID:27193236", 'label': None, 'type': self.globaltt['publication'] } evidence_curie = self.make_id("{0}{1}{2}".format( association, outcome['id'], self.name)) evidence_type = self.globaltt['clinical study evidence'] evidence.add_supporting_evidence(evidence_curie, evidence_type) evidence.add_supporting_publication(evidence_curie, reference['curie'], reference['label'], reference['type']) evidence.add_source(evidence_curie, source['curie'], source['label'], source['type']) count_bnode = self.make_id("{0}{1}{2}".format(evidence_curie, outcome['case_count'], self.name), prefix="_") pr_ratio_bnode = self.make_id("{0}{1}{2}{3}".format( evidence_curie, outcome['prr'], self.name, 'prr'), prefix="_") odds_ratio_bnode = self.make_id("{0}{1}{2}{3}".format( evidence_curie, outcome['ror'], self.name, 'ror'), prefix="_") evidence.add_data_individual(count_bnode, ind_type=self.globaltt['count']) evidence.add_data_individual( pr_ratio_bnode, ind_type=self.globaltt['proportional_reporting_ratio']) evidence.add_data_individual(odds_ratio_bnode, ind_type=self.globaltt['odds_ratio']) value_map = { count_bnode: outcome['case_count'], pr_ratio_bnode: outcome['prr'], odds_ratio_bnode: outcome['ror'] } evidence.add_supporting_data(evidence_curie, value_map) return
def _add_outcome_evidence(self, association, outcome): """ :param association: str association curie :param outcome: dict (json) :return: None """ evidence = Evidence(self.graph, association) source = { 'curie': "DOI:10.5061/dryad.8q0s4/1", 'label': "Data from: A curated and standardized adverse " "drug event resource to accelerate drug safety research", 'type': self.globaltt['data set'] } reference = { 'curie': "PMID:27193236", 'label': None, 'type': self.globaltt['publication'] } evidence_curie = self.make_id("{0}{1}{2}".format( association, outcome['id'], self.name )) evidence_type = self.globaltt['clinical study evidence'] evidence.add_supporting_evidence(evidence_curie, evidence_type) evidence.add_supporting_publication( evidence_curie, reference['curie'], reference['label'], reference['type']) evidence.add_source( evidence_curie, source['curie'], source['label'], source['type']) count_bnode = self.make_id( "{0}{1}{2}".format(evidence_curie, outcome['case_count'], self.name), prefix="_") pr_ratio_bnode = self.make_id( "{0}{1}{2}{3}".format(evidence_curie, outcome['prr'], self.name, 'prr'), prefix="_") odds_ratio_bnode = self.make_id( "{0}{1}{2}{3}".format(evidence_curie, outcome['ror'], self.name, 'ror'), prefix="_") evidence.add_data_individual( count_bnode, ind_type=self.globaltt['count']) evidence.add_data_individual( pr_ratio_bnode, ind_type=self.globaltt['proportional_reporting_ratio']) evidence.add_data_individual( odds_ratio_bnode, ind_type=self.globaltt['odds_ratio']) value_map = { count_bnode: outcome['case_count'], pr_ratio_bnode: outcome['prr'], odds_ratio_bnode: outcome['ror'] } evidence.add_supporting_data(evidence_curie, value_map) return