Esempio n. 1
0
def ancestral_sequence_inference(tree=None,
                                 aln=None,
                                 ref=None,
                                 infer_gtr=True,
                                 marginal=False,
                                 optimize_branch_length=True,
                                 branch_length_mode='auto'):
    from treetime import TreeAnc
    tt = TreeAnc(tree=tree, aln=aln, ref=ref, gtr='JC69', verbose=1)

    #convert marginal (from args.ancestral) from 'joint' or 'marginal' to True or False
    bool_marginal = (marginal == "marginal")

    if optimize_branch_length:
        tt.optimize_seq_and_branch_len(infer_gtr=infer_gtr,
                                       marginal_sequences=bool_marginal,
                                       branch_length_mode=branch_length_mode)
    else:  # only infer ancestral sequences, leave branch length untouched
        tt.infer_ancestral_sequences(infer_gtr=infer_gtr,
                                     marginal=bool_marginal)

    print(
        "\nInferred ancestral sequence states using TreeTime:"
        "\n\tSagulenko et al. TreeTime: Maximum-likelihood phylodynamic analysis"
        "\n\tVirus Evolution, vol 4, https://academic.oup.com/ve/article/4/1/vex042/4794731\n"
    )

    return tt
Esempio n. 2
0
def ancestral_sequence_inference(tree=None, aln=None, infer_gtr=True,
                                 optimize_branch_length=True):
    from treetime import TreeAnc
    tt = TreeAnc(tree=tree, aln=aln, gtr='JC69')

    if optimize_branch_length:
        tt.optimize_seq_and_branch_len(infer_gtr=infer_gtr)
    else: # only infer ancestral sequences, leave branch length untouched
        tt.infer_ancestral_sequences(infer_gtr=infer_gtr)

    return tt