Exemplo n.º 1
0
        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):