Example #1
0
def get_flying_sequence(flight):
    state_alphabet = Alphabet()
    state_alphabet.letters = list("fs")
    emissions_alphabet = Alphabet()
    emissions_alphabet.letters = list("FS")

    emissions = []
    for x in flight._flying_emissions():
        if x == 1:
            emissions.append("F")
        else:
            emissions.append("S")
    emissions = Seq("".join(emissions), emissions_alphabet)
    empty_states = Seq("", state_alphabet)
    return TrainingSequence(emissions, empty_states)
Example #2
0
def get_flying_sequence(flight):
    state_alphabet = Alphabet()
    state_alphabet.letters = list("fs")
    emissions_alphabet = Alphabet()
    emissions_alphabet.letters = list("FS")

    emissions = []
    for x in flight._flying_emissions():
        if x == 1:
            emissions.append("F")
        else:
            emissions.append("S")
    emissions = Seq("".join(emissions), emissions_alphabet)
    empty_states = Seq("", state_alphabet)
    return TrainingSequence(emissions, empty_states)
Example #3
0
def initial_markov_model_flying():
    state_alphabet = Alphabet()
    state_alphabet.letters = list("fs")
    emissions_alphabet = Alphabet()
    emissions_alphabet.letters = list("FS")

    mmb = MarkovModelBuilder(state_alphabet, emissions_alphabet)
    mmb.set_initial_probabilities({'f': 0.20, 's': 0.80})
    mmb.allow_all_transitions()
    mmb.set_transition_score('f', 'f', 0.99)
    mmb.set_transition_score('f', 's', 0.01)
    mmb.set_transition_score('s', 'f', 0.01)
    mmb.set_transition_score('s', 's', 0.99)
    mmb.set_emission_score('f', 'F', 0.90)
    mmb.set_emission_score('f', 'S', 0.10)
    mmb.set_emission_score('s', 'F', 0.10)
    mmb.set_emission_score('s', 'S', 0.90)
    mm = mmb.get_markov_model()
    return mm
Example #4
0
def initial_markov_model_flying():
    state_alphabet = Alphabet()
    state_alphabet.letters = list("fs")
    emissions_alphabet = Alphabet()
    emissions_alphabet.letters = list("FS")

    mmb = MarkovModelBuilder(state_alphabet, emissions_alphabet)
    mmb.set_initial_probabilities({'f': 0.20, 's': 0.80})
    mmb.allow_all_transitions()
    mmb.set_transition_score('f', 'f', 0.99)
    mmb.set_transition_score('f', 's', 0.01)
    mmb.set_transition_score('s', 'f', 0.01)
    mmb.set_transition_score('s', 's', 0.99)
    mmb.set_emission_score('f', 'F', 0.90)
    mmb.set_emission_score('f', 'S', 0.10)
    mmb.set_emission_score('s', 'F', 0.10)
    mmb.set_emission_score('s', 'S', 0.90)
    mm = mmb.get_markov_model()
    return mm
#INPUT PHASE

lines = []

with open('input.txt','r') as handle:
    for l in handle.readlines():
        lines.append(l)

iterations = int(lines[0])

x = lines[2].strip()

alphabet = lines[4].split()
emission_alphabet = Alphabet()
emission_alphabet.size = 1
emission_alphabet.letters = alphabet

states = lines[6].split()
states_alphabet = Alphabet()
states_alphabet.size = 1
states_alphabet.letters = states

transition_probs = np.zeros((len(states),len(states)))

for i in range(len(states)):
    prob = lines[9+i].split()
    for j in range(len(states)):
        put = prob[1+j]
        transition_probs[i][j] = float(put)

emission_probs = np.zeros((len(states), len(alphabet)))
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("fasta")
    parser.add_argument("slop", type=int)
    parser.add_argument("flagged")
    parser.add_argument("--primer3", action="store_true", help="output in primer3-compatible input format")
    parser.add_argument("--min_primer_size", type=int, default=18)
    parser.add_argument("--opt_primer_size", type=int, default=20)
    parser.add_argument("--max_primer_size", type=int, default=27)
    parser.add_argument("--max_primers_to_return", type=int, default=5)
    args = parser.parse_args()

    slop = args.slop
    alphabet = Alphabet()
    alphabet.letters = ["A", "T", "C", "G", "[", "]"]

    with open(args.flagged, "w") as fh:
        for seq_record in SeqIO.parse(args.fasta, "fasta"):
            if args.primer3:
                sequence = str(seq_record.seq)
                fh.write("SEQUENCE_ID=%s\n" % seq_record.id)
                fh.write("SEQUENCE_TEMPLATE=%s\n" % sequence)
                fh.write("SEQUENCE_TARGET=%i,%i\n" % (slop, len(sequence) - 2 * slop))
                fh.write("PRIMER_OPT_SIZE=%i\n" % args.opt_primer_size)
                fh.write("PRIMER_MIN_SIZE=%i\n" % args.min_primer_size)
                fh.write("PRIMER_MAX_SIZE=%i\n" % args.max_primer_size)
                fh.write("PRIMER_NUM_RETURN=%i\n" % args.max_primers_to_return)
                fh.write("=\n")
            else:
                sequence = Seq(