示例#1
0
    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
示例#2
0
文件: IMPC.py 项目: TomConlin/dipper
    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
示例#3
0
    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
示例#4
0
    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