def _prepare_samples(self): """ private method to load sample information """ if not self.args.no_genotypes: self.samples = self.vcf_reader.samples self.sample_to_id = {} for idx, sample in enumerate(self.samples): self.sample_to_id[sample] = idx + 1 self.ped_hash = {} if self.args.ped_file is not None: self.ped_hash = load_ped_file(self.args.ped_file) sample_list = [] for sample in self.samples: i = self.sample_to_id[sample] if sample in self.ped_hash: fields = self.ped_hash[sample] sample_list = [i] + fields elif len(self.ped_hash) > 0: sys.exit("EXITING: sample %s found in the VCF but " "not in the PED file.\n" % (sample)) else: # if there is no ped file given, just fill in the name and # sample_id and set the other required fields to None sample_list = [i, None, sample] sample_list += list(repeat(None, len(default_ped_fields) - 2)) database.insert_sample(self.c, sample_list)
def _prepare_samples(self): """ private method to load sample information """ if not self.args.no_genotypes: self.samples = self.vcf_reader.samples self.sample_to_id = {} for idx, sample in enumerate(self.samples): self.sample_to_id[sample] = idx + 1 self.ped_hash = {} if self.args.ped_file is not None: self.ped_hash = load_ped_file(self.args.ped_file) sample_list = [] for sample in self.samples: i = self.sample_to_id[sample] if sample in self.ped_hash: fields = self.ped_hash[sample] sample_list = [i] + fields elif len(self.ped_hash) > 0: raise ValueError("Sample %s found in the VCF but " "not in the PED file.\n" % (sample)) else: # if there is no ped file given, just fill in the name and # sample_id and set the other required fields to None sample_list = [i, 0, sample, 0, 0, -9, -9] database.insert_sample(self.c, self.metadata, sample_list)
def amend_sample(args): loaded_subjects = get_subjects(args) ped_dict = load_ped_file(args.sample) header = get_ped_fields(args.sample) with database_transaction(args.db) as c: for k, v in loaded_subjects.items(): if k in ped_dict: item_list = map(quote_string, ped_dict[k]) sample = zip(header, item_list) set_str = ",".join([str(x) + "=" + str(y) for (x, y) in sample]) sql_query = "update samples set {0} where sample_id={1}" c.execute(sql_query.format(set_str, v.sample_id))
def amend_sample(args): loaded_subjects = get_subjects(args) ped_dict = load_ped_file(args.sample) header = get_ped_fields(args.sample) with database_transaction(args.db) as c: for k, v in loaded_subjects.items(): if k in ped_dict: item_list = map(quote_string, ped_dict[k]) sample = zip(header, item_list) set_str = ",".join( [str(x) + "=" + str(y) for (x, y) in sample]) sql_query = "update samples set {0} where sample_id={1}" c.execute(sql_query.format(set_str, v.sample_id))