Beispiel #1
0
def test_get_acmg_pathogenic():
    acmg_terms = ["PVS1", "PS1"]
    res = get_acmg(acmg_terms)
    assert res == "pathogenic"

    acmg_terms = ["PVS1", "PS1", "BS1"]
    res = get_acmg(acmg_terms)
    assert res == "pathogenic"
Beispiel #2
0
def test_get_acmg_uncertain():
    acmg_terms = ["PVS1"]
    res = get_acmg(acmg_terms)
    assert res == "uncertain_significance"

    acmg_terms = ["PVS1", "PS1", "BA1"]
    res = get_acmg(acmg_terms)
    assert res == "uncertain_significance"
Beispiel #3
0
def test_get_acmg_uncertain():
    acmg_terms = ['PVS1']
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'

    acmg_terms = ['PVS1', 'PS1', 'BA1']
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'
Beispiel #4
0
def test_get_acmg_uncertain():
    acmg_terms = ['PVS1']
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'

    acmg_terms = ['PVS1', 'PS1', 'BA1']
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'
Beispiel #5
0
def test_get_acmg_pathogenic():
    acmg_terms = ['PVS1', 'PS1']
    res = get_acmg(acmg_terms)
    assert res == 'pathogenic'

    acmg_terms = ['PVS1', 'PS1', 'BS1']
    res = get_acmg(acmg_terms)
    assert res == 'pathogenic'
Beispiel #6
0
def test_get_acmg_pathogenic():
    acmg_terms = ['PVS1', 'PS1']
    res = get_acmg(acmg_terms)
    assert res == 'pathogenic'

    acmg_terms = ['PVS1', 'PS1', 'BS1']
    res = get_acmg(acmg_terms)
    assert res == 'pathogenic'
Beispiel #7
0
    def submit_evaluation(self, variant_obj, user_obj, institute_obj, case_obj,
                          link, criteria):
        """Submit an evaluation to the database

        Get all the relevant information, build a evaluation_obj

        Args:
            variant_obj(dict)
            user_obj(dict)
            institute_obj(dict)
            case_obj(dict)
            link(str): variant url
            criteria(list(dict)):

                [
            {
            'term': str,
            'comment': str,
            'links': list(str)
            },
            .
            .
        ]
        """
        variant_specific = variant_obj['_id']
        variant_id = variant_obj['variant_id']
        user_id = user_obj['_id']
        user_name = user_obj.get('name', user_obj['_id'])
        institute_id = institute_obj['_id']
        case_id = case_obj['_id']

        evaluation_terms = [
            evluation_info['term'] for evluation_info in criteria
        ]

        classification = get_acmg(evaluation_terms)

        evaluation_obj = build_evaluation(variant_specific=variant_specific,
                                          variant_id=variant_id,
                                          user_id=user_id,
                                          user_name=user_name,
                                          institute_id=institute_id,
                                          case_id=case_id,
                                          classification=classification,
                                          criteria=criteria)

        self._load_evaluation(evaluation_obj)

        # Update the acmg classification for the variant:
        self.update_acmg(institute_obj, case_obj, user_obj, link, variant_obj,
                         classification)
        return classification
Beispiel #8
0
    def submit_evaluation(self, variant_obj, user_obj, institute_obj, case_obj, link, criteria):
        """Submit an evaluation to the database

        Get all the relevant information, build a evaluation_obj

        Args:
            variant_obj(dict)
            user_obj(dict)
            institute_obj(dict)
            case_obj(dict)
            link(str): variant url
            criteria(list(dict)):

                [
            {
            'term': str,
            'comment': str,
            'links': list(str)
            },
            .
            .
        ]
        """
        variant_specific = variant_obj['_id']
        variant_id = variant_obj['variant_id']
        user_id = user_obj['_id']
        user_name = user_obj.get('name', user_obj['_id'])
        institute_id = institute_obj['_id']
        case_id = case_obj['_id']

        evaluation_terms = [evluation_info['term'] for evluation_info in criteria]

        classification = get_acmg(evaluation_terms)

        evaluation_obj = build_evaluation(
            variant_specific=variant_specific,
            variant_id=variant_id,
            user_id=user_id,
            user_name=user_name,
            institute_id=institute_id,
            case_id=case_id,
            classification=classification,
            criteria=criteria
        )

        self._load_evaluation(evaluation_obj)

        # Update the acmg classification for the variant:
        self.update_acmg(institute_obj, case_obj, user_obj, link, variant_obj, classification)
        return classification
Beispiel #9
0
def acmg():
    """Calculate an ACMG classification from submitted criteria."""
    criteria = request.args.getlist("criterion")
    classification = get_acmg(criteria)
    return jsonify(dict(classification=classification))
Beispiel #10
0
def test_get_acmg_no_terms():
    acmg_terms = []
    res = get_acmg(acmg_terms)
    assert res == None
Beispiel #11
0
def test_get_acmg_no_terms():
    acmg_terms = []
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'
Beispiel #12
0
    def submit_evaluation(
        self,
        variant_obj,
        user_obj,
        institute_obj,
        case_obj,
        link,
        criteria=None,
        classification=None,
    ):
        """Submit an evaluation to the database

        Get all the relevant information, build a evaluation_obj

        Args:
            variant_obj(dict)
            user_obj(dict)
            institute_obj(dict)
            case_obj(dict)
            link(str): variant url
            criteria(list(dict)):
                                            [
                                        {
                                        'term': str,
                                        'comment': str,
                                        'links': list(str)
                                        },
                                        .
                                        .
                                    ]
            classification(int)
        """
        criteria = criteria or []

        variant_specific = variant_obj["_id"]
        variant_id = variant_obj["variant_id"]
        user_id = user_obj["_id"]
        user_name = user_obj.get("name", user_obj["_id"])
        institute_id = institute_obj["_id"]
        case_id = case_obj["_id"]

        evaluation_terms = [evluation_info["term"] for evluation_info in criteria]

        if classification is None:
            classification = get_acmg(evaluation_terms)

        if classification:
            evaluation_obj = build_evaluation(
                variant_specific=variant_specific,
                variant_id=variant_id,
                user_id=user_id,
                user_name=user_name,
                institute_id=institute_id,
                case_id=case_id,
                classification=classification,
                criteria=criteria,
            )

            self._load_evaluation(evaluation_obj)

        # Update the acmg classification for the variant:
        self.update_acmg(
            institute_obj, case_obj, user_obj, link, variant_obj, classification
        )
        return classification
Beispiel #13
0
def test_get_acmg_no_terms():
    acmg_terms = []
    res = get_acmg(acmg_terms)
    assert res == 'uncertain_significance'
Beispiel #14
0
def acmg():
    """Calculate an ACMG classification from submitted criteria."""
    criteria = request.args.getlist('criterion')
    classification = get_acmg(criteria)
    return jsonify(dict(classification=classification))