def write_record(self, individual, data_samples,
                  data_collection_samples=None):
     allele_patterns = {0: 'AA', 1: 'BB', 2:'AB', 3: 'NN'}
     if data_collection_samples:
         dsamples = [d for d in data_samples if d in data_collection_samples]
     else:
         dsamples = data_samples
     if len(dsamples) > 0:
         if self.igd:
             dsamples = dsamples[:1]
         for ds in dsamples:
             start = time.time()
             probs, _ = ds.resolve_to_data()
             end = time.time() - start
             self.counter['total_fetch_time'] += end
             if end < self.counter['faster_fetch'] or 'faster_fetch' not in self.counter:
                 self.counter['faster_fetch'] = end
             if end > self.counter['slower_fetch']:
                 self.counter['slower_fetch'] = end
             self.logger.debug('Retrieved data for %s in %f seconds' %
                               (ds.label, end))
             if probs is not None:
                 self.counter['fetched_samples'] += 1
                 self.out_ds_csvw.writerow([ds.id])
                 disc_probs = [allele_patterns[x]
                               for x in project_to_discrete_genotype(probs)]
                 if self.tro:
                     self.out_gt_csvw.writerow(disc_probs)
                 else:
                     self.out_data.append(disc_probs)
예제 #2
0
 def dump_genotype(fo, data_sample):
   if data_sample is None:
     probs = self.null_probs
   else:
     probs, _ = data_sample.resolve_to_data()
   if self.selected_markers:
     probs = probs[:, self.selected_markers]
   fo.write('\t'.join([allele_patterns[x]
                       for x in project_to_discrete_genotype(probs)]))
   fo.write('\n')
예제 #3
0
 def write_record(self,
                  individual,
                  data_samples,
                  data_collection_samples=None):
     allele_patterns = {0: 'AA', 1: 'BB', 2: 'AB', 3: 'NN'}
     if data_collection_samples:
         dsamples = [
             d for d in data_samples if d in data_collection_samples
         ]
     else:
         dsamples = data_samples
     if len(dsamples) > 0:
         if self.igd:
             dsamples = dsamples[:1]
         for ds in dsamples:
             start = time.time()
             probs, _ = ds.resolve_to_data()
             end = time.time() - start
             self.counter['total_fetch_time'] += end
             if end < self.counter[
                     'faster_fetch'] or 'faster_fetch' not in self.counter:
                 self.counter['faster_fetch'] = end
             if end > self.counter['slower_fetch']:
                 self.counter['slower_fetch'] = end
             self.logger.debug('Retrieved data for %s in %f seconds' %
                               (ds.label, end))
             if probs is not None:
                 self.counter['fetched_samples'] += 1
                 self.out_ds_csvw.writerow([ds.id])
                 disc_probs = [
                     allele_patterns[x]
                     for x in project_to_discrete_genotype(probs)
                 ]
                 if self.tro:
                     self.out_gt_csvw.writerow(disc_probs)
                 else:
                     self.out_data.append(disc_probs)