예제 #1
0
    def _add_vcf_file_for_family(self, project_id, family_id, vcf_file_path, reference_populations=None):

        fam = self._db.families.find_one({'project_id': project_id, 'family_id': family_id})
        collection = self._db[fam['coll_name']]
        indiv_id_list = fam['individuals']

        for i, variant in enumerate(vcf_stuff.iterate_vcf_path(
            vcf_file_path,
            genotypes=True,
            indiv_id_list=indiv_id_list,
        )):
            if i % 10000 == 0:
                print i
            self._annotator.annotate_variant(variant, reference_populations)
            family_variant = variant.make_copy(restrict_to_genotypes=fam['individuals'])
            if xbrowse_utils.is_variant_relevant_for_individuals(family_variant, fam['individuals']) is True:
                self._save_variant_to_collection(family_variant, collection)
예제 #2
0
 def _add_vcf_file_for_family_set(self, family_info_list, vcf_file_path, reference_populations=None):
     print "Adding variants from %s" % vcf_file_path
     collections = {f['family_id']: self._db[f['coll_name']] for f in family_info_list}
     for collection in collections.values():
         collection.drop_indexes()
     indiv_id_list = [i for f in family_info_list for i in f['individuals']]
     for i, variant in enumerate(vcf_stuff.iterate_vcf_path(
         vcf_file_path,
         genotypes=True,
         indiv_id_list=indiv_id_list,
     )):
         if i % 1000 == 0:
             print i
         self._annotator.annotate_variant(variant, reference_populations)
         for family in family_info_list:
             family_variant = variant.make_copy(restrict_to_genotypes=family['individuals'])
             if xbrowse_utils.is_variant_relevant_for_individuals(family_variant, family['individuals']):
                 self._save_variant_to_collection(family_variant, collections[family['family_id']])