parser.set_defaults(permutations=False) parser.add_argument('seqs', type=str, nargs='+', help='Sequences') args = parser.parse_args() fasta_sequences = SeqIO.to_dict(SeqIO.parse(open(args.fasta), 'fasta')) seqs = [] for seq in args.seqs: seqs.append(str(fasta_sequences[seq].seq).lower()) with open(args.cost, 'r') as cost_file: letters = cost_file.readline().lower() complex_ycost = numpy.matrix(cost_file.read()) def input_y(a, b): try: return complex_ycost[letters.index(a), letters.index(b)] except: print('WTF ' + a + ' - ' + b + ' is not a real cost') sys.exit(1) return 0 if args.permutations: AiBS.multi_approx(input_y, 5, *seqs) else: alignment = AiBS.approx(input_y, 5, *seqs) for (i, r) in enumerate(alignment): print(">seq" + str(i+1)) print(r)
def input_y(a, b): try: return complex_ycost[letters.index(a), letters.index(b)] except: print('WTF ' + a + ' - ' + b + ' is not a real cost') sys.exit(1) return 0 if args.matrix: keys = list(fasta_sequences.keys()) keys.sort() res = numpy.zeros(shape=(len(keys),len(keys))) print(keys) for s1, s2 in list(permutations(keys,2)): if args.affine: res[keys.index(s1), keys.index(s2)] = AiBS.global_affine(fasta_sequences[s1], fasta_sequences[s2], input_y, 5, 5, False) else: res[keys.index(s1), keys.index(s2)] = AiBS.global_linear(fasta_sequences[s1], fasta_sequences[s2], input_y, 5, False) print(res) sys.exit() if args.affine: print(AiBS.global_affine(seq1, seq2, input_y, 5, 5, args.backtrack)) else: print(AiBS.global_linear(seq1, seq2, input_y, 5, args.backtrack))
parser.add_argument('seq1', type=str, help='Sequence 1') parser.add_argument('seq2', type=str, help='Sequence 2') parser.add_argument('seq3', type=str, help='Sequence 3') parser.add_argument('--backtrack', dest='backtrack', action='store_true') parser.set_defaults(backtrack=False) args = parser.parse_args() fasta_sequences = SeqIO.to_dict(SeqIO.parse(open(args.fasta),'fasta')) seq1 = str(fasta_sequences[args.seq1].seq).lower() seq2 = str(fasta_sequences[args.seq2].seq).lower() seq3 = str(fasta_sequences[args.seq3].seq).lower() with open(args.cost, 'r') as cost_file: letters = cost_file.readline().lower() complex_ycost = numpy.matrix(cost_file.read()) def input_y(a, b): try: return complex_ycost[letters.index(a), letters.index(b)] except: print('WTF ' + a + ' - ' + b + ' is not a real cost') sys.exit(1) return 0 print(AiBS.exact_3(seq1, seq2, seq3, input_y, 5, args.backtrack))
parser = argparse.ArgumentParser(description='Genome Sequence Analyzor') parser.add_argument('cost', type=str, help='Cost file to read') parser.add_argument('--backtrack', dest='backtrack', action='store_true') parser.add_argument('fastas', type=str, nargs='+', help='Fasta') args = parser.parse_args() def input_y(a, b): try: return complex_ycost[letters.index(a), letters.index(b)] except: print('WTF ' + a + ' - ' + b + ' is not a real cost') sys.exit(1) return 0 print("#len\texact\tapprox") for fasta in args.fastas: fasta_sequences = SeqIO.to_dict(SeqIO.parse(open(fasta),'fasta')) seq1 = str(list(fasta_sequences.values())[0].seq).lower() seq2 = str(list(fasta_sequences.values())[1].seq).lower() seq3 = str(list(fasta_sequences.values())[2].seq).lower() with open(args.cost, 'r') as cost_file: letters = cost_file.readline().lower() complex_ycost = numpy.matrix(cost_file.read()) print(str(len(seq1)) + "\t" + str(AiBS.exact_3(seq1, seq2, seq3, input_y, 5, args.backtrack)) + "\t" + str(AiBS.approx_score(input_y, 5, seq1, seq2, seq3)))