scout/adapter/mongo/variant.py
def evaluated_variants(self, case_id):
        """Returns variants that has been evaluated

        Return all variants, snvs/indels and svs from case case_id
        which have a entry for 'acmg_classification', 'manual_rank', 'dismiss_variant'
        or if they are commented.

        Args:
            case_id(str)

        Returns:
            variants(iterable(Variant))
        """
        # Get all variants that have been evaluated in some way for a case
        query = {
            '$and': [
                {'case_id': case_id},
                {
                    '$or': [
                        {'acmg_classification': {'$exists': True}},
                        {'manual_rank': {'$exists': True}},
                        {'dismiss_variant': {'$exists': True}},
                    ]
                }
            ],
        }

        # Collect the result in a dictionary
        variants = {}
        for var in self.variant_collection.find(query):
            variants[var['variant_id']] = self.add_gene_info(var)

        # Collect all variant comments from the case
        event_query = {
            '$and': [
                {'case': case_id},
                {'category': 'variant'},
                {'verb': 'comment'},
            ]
        }

        # Get all variantids for commented variants
        comment_variants = {event['variant_id'] for event in self.event_collection.find(event_query)}

        # Get the variant objects for commented variants, if they exist
        for var_id in comment_variants:
            # Skip if we already added the variant
            if var_id in variants:
                continue
            # Get the variant with variant_id (not _id!)
            variant_obj = self.variant(var_id, case_id=case_id)

            # There could be cases with comments that refers to non existing variants
            # if a case has been reanalysed
            if not variant_obj:
                continue

            variant_obj['is_commented'] = True
            variants[var_id] = variant_obj

        # Return a list with the variant objects
        return variants.values()
def evaluated_variants(self, case_id):
        # Get all variants that have been evaluated in some way for a case
        query = {
            '$and': [
                {'case_id': case_id},
                {
                    '$or': [
                        {'acmg_classification': {'$exists': True}},
                        {'manual_rank': {'$exists': True}},
                        {'dismiss_variant': {'$exists': True}},
                    ]
                }
            ],
        }

        # Collect the result in a dictionary
        variants = {}
        for var in self.variant_collection.find(query):
            variants[var['variant_id']] = self.add_gene_info(var)

        # Collect all variant comments from the case
        event_query = {
            '$and': [
                {'case': case_id},
                {'category': 'variant'},
                {'verb': 'comment'},
            ]
        }

        # Get all variantids for commented variants
        comment_variants = {event['variant_id'] for event in self.event_collection.find(event_query)}

        # Get the variant objects for commented variants, if they exist
        for var_id in comment_variants:
            # Skip if we already added the variant
            if var_id in variants:
                continue
            # Get the variant with variant_id (not _id!)
            variant_obj = self.variant(var_id, case_id=case_id)

            # There could be cases with comments that refers to non existing variants
            # if a case has been reanalysed
            if not variant_obj:
                continue

            variant_obj['is_commented'] = True
            variants[var_id] = variant_obj

        # Return a list with the variant objects
        return variants.values()
def evaluated_variants ( self , case_id ) : # Get all variants that have been evaluated in some way for a case query = { '$and' : [ { 'case_id' : case_id } , { '$or' : [ { 'acmg_classification' : { '$exists' : True } } , { 'manual_rank' : { '$exists' : True } } , { 'dismiss_variant' : { '$exists' : True } } , ] } ] , } # Collect the result in a dictionary variants = { } for var in self . variant_collection . find ( query ) : variants [ var [ 'variant_id' ] ] = self . add_gene_info ( var ) # Collect all variant comments from the case event_query = { '$and' : [ { 'case' : case_id } , { 'category' : 'variant' } , { 'verb' : 'comment' } , ] } # Get all variantids for commented variants comment_variants = { event [ 'variant_id' ] for event in self . event_collection . find ( event_query ) } # Get the variant objects for commented variants, if they exist for var_id in comment_variants : # Skip if we already added the variant if var_id in variants : continue # Get the variant with variant_id (not _id!) variant_obj = self . variant ( var_id , case_id = case_id ) # There could be cases with comments that refers to non existing variants # if a case has been reanalysed if not variant_obj : continue variant_obj [ 'is_commented' ] = True variants [ var_id ] = variant_obj # Return a list with the variant objects return variants . values ( )
Returns variants that has been evaluated

        Return all variants, snvs/indels and svs from case case_id
        which have a entry for 'acmg_classification', 'manual_rank', 'dismiss_variant'
        or if they are commented.

        Args:
            case_id(str)

        Returns:
            variants(iterable(Variant))
Returns variants that has been evaluated