def clinsig_human(variant_obj): """Convert to human readable version of CLINSIG evaluation.""" for clinsig_obj in variant_obj['clnsig']: # The clinsig objects allways have a accession if isinstance(clinsig_obj['accession'], int): # New version link = "https://www.ncbi.nlm.nih.gov/clinvar/variation/{}" else: # Old version link = "https://www.ncbi.nlm.nih.gov/clinvar/{}" human_str = 'not provided' if clinsig_obj.get('value'): try: # Old version int(clinsig_obj['value']) human_str = CLINSIG_MAP.get(clinsig_obj['value'], 'not provided') except ValueError: # New version human_str = clinsig_obj['value'] clinsig_obj['human'] = human_str clinsig_obj['link'] = link.format(clinsig_obj['accession']) yield clinsig_obj
def clinsig_human(variant_obj): """Convert to human readable version of CLINSIG evaluation.""" for clinsig_obj in variant_obj['clnsig']: human_str = CLINSIG_MAP.get(clinsig_obj['value'], 'not provided') clinsig_obj['human'] = human_str clinsig_obj['link'] = ("https://www.ncbi.nlm.nih.gov/clinvar/{}" .format(clinsig_obj['accession'])) yield clinsig_obj
def clinsig_human(variant_obj): """Convert to human readable version of CLINSIG evaluation. The clinical significance from ACMG are stored as numbers. These needs to be converted to human readable format. Also the link to the accession is built Args: variant_obj(scout.models.Variant) Yields: clinsig_objs(dict): { 'human': str, 'link': str } """ for clinsig_obj in variant_obj.get("clnsig", []): # The clinsig objects allways have a accession if not "accession" in clinsig_obj: continue # Old version link = "https://www.ncbi.nlm.nih.gov/clinvar/{}" if isinstance(clinsig_obj["accession"], int): # New version link = "https://www.ncbi.nlm.nih.gov/clinvar/variation/{}" human_str = "not provided" clinsig_value = clinsig_obj.get("value") if clinsig_value: try: # Old version int(clinsig_value) human_str = CLINSIG_MAP.get(clinsig_value, "not provided") except ValueError: # New version human_str = clinsig_value clinsig_obj["human"] = human_str clinsig_obj["link"] = link.format(clinsig_obj["accession"]) yield clinsig_obj
# -*- coding: utf-8 -*- import decimal from flask_wtf import FlaskForm from wtforms import (BooleanField, DecimalField, Field, TextField, SelectMultipleField, HiddenField, IntegerField, SubmitField) from wtforms.widgets import TextInput from flask_wtf.file import FileField from scout.constants import (CLINSIG_MAP, FEATURE_TYPES, GENETIC_MODELS, SO_TERMS, SPIDEX_LEVELS, SV_TYPES) CLINSIG_OPTIONS = list(CLINSIG_MAP.items()) FUNC_ANNOTATIONS = [(term, term.replace('_', ' ')) for term in SO_TERMS] REGION_ANNOTATIONS = [(term, term.replace('_', ' ')) for term in FEATURE_TYPES] SV_TYPE_CHOICES = [(term, term.replace('_', ' ').upper()) for term in SV_TYPES] SPIDEX_CHOICES = [(term, term.replace('_', ' ')) for term in SPIDEX_LEVELS] class TagListField(Field): widget = TextInput() def _value(self): if self.data: return ', '.join(self.data) else: return '' def process_formdata(self, valuelist): if valuelist: self.data = [x.strip() for x in valuelist[0].split(',') if x.strip()] else:
def clinsig_human(variant_obj): """Convert to human readable version of CLINSIG evaluation.""" for clinsig_obj in variant_obj['clnsig']: human_str = CLINSIG_MAP.get(clinsig_obj.value, 'not provided') yield clinsig_obj, human_str