patients = patients.loc[pnames] if VERBOSE >= 1: print 'Analyze patients' for pname, patient in patients.iterrows(): patient = Patient(patient) for fragment in fragments: if VERBOSE >= 1: print patient.name, fragment mapco = patient.get_map_coordinates_reference(fragment, refname=refname) if VERBOSE >= 2: print 'Get initial allele frequencies' af0 = patient.get_initial_allele_frequencies(fragment, cov_min=depth_min) if VERBOSE >= 2: print 'Get allele frequencies' aft, ind = patient.get_allele_frequency_trajectories(fragment, depth_min=depth_min) if VERBOSE >= 2: print 'Filter out masked positions' ind_nonmasked = -aft.mask.any(axis=0).any(axis=0) if VERBOSE >= 2: print 'Remove first time sample' aft_der = aft[int(0 in ind):].copy() if VERBOSE >= 2:
del fragments[fragments.index('genomewide')] else: do_genomewide = False for pname, patient in patients.iterrows(): print pname patient = Patient(patient) patient.discard_nonsequenced_samples() for fragment in fragments: if VERBOSE >= 1: print fragment ref = patient.get_reference(fragment) refm = np.array(ref, 'S1') af0 = patient.get_initial_allele_frequencies(fragment) consm = alpha[af0.argmax(axis=0)] seqm = consm.copy() # Gaps in a reference are not wished for if '-' in seqm: seqm[seqm == '-'] = refm[seqm == '-'] seq = SeqRecord(Seq(''.join(seqm), ambiguous_dna), id=ref.id, name=ref.name, description=ref.description) if VERBOSE >= 2: ind = (refm != seqm).nonzero()[0] if not len(ind):