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)
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']])