Esempio n. 1
0
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)