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"
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"
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'
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'
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
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
def acmg(): """Calculate an ACMG classification from submitted criteria.""" criteria = request.args.getlist("criterion") classification = get_acmg(criteria) return jsonify(dict(classification=classification))
def test_get_acmg_no_terms(): acmg_terms = [] res = get_acmg(acmg_terms) assert res == None
def test_get_acmg_no_terms(): acmg_terms = [] res = get_acmg(acmg_terms) assert res == 'uncertain_significance'
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
def acmg(): """Calculate an ACMG classification from submitted criteria.""" criteria = request.args.getlist('criterion') classification = get_acmg(criteria) return jsonify(dict(classification=classification))