0
|
1 #!/usr/bin/env python3
|
|
2 ''' fasta affixer - adding prefixes and suffixes to fasta sequence names'''
|
|
3 import argparse
|
|
4
|
|
5 parser = argparse.ArgumentParser()
|
|
6 parser.add_argument("-f", "--fasta", type=str, help="fasta file")
|
|
7 parser.add_argument("-o", "--output", type=str, help="output fasta file")
|
|
8 parser.add_argument(
|
|
9 "-p", "--prefix",
|
|
10 type=str, help="prefix to be added to names")
|
|
11 parser.add_argument(
|
|
12 "-s", "--suffix",
|
|
13 type=str, help="suffix to be added",
|
|
14 default='')
|
|
15 parser.add_argument("-n",
|
|
16 "--nspace",
|
|
17 type=int,
|
|
18 help="number of spaces to ignore",
|
|
19 default='0')
|
|
20
|
|
21 args = parser.parse_args()
|
|
22
|
|
23 with open(args.fasta, "r") as f, open(args.output, "w") as out:
|
|
24 for oneline in f:
|
|
25 if oneline == "":
|
|
26 continue
|
|
27 if not oneline:
|
|
28 break
|
|
29 if oneline[0] == ">":
|
|
30 header = " ".join(oneline.split()[:1 + args.nspace])
|
|
31 header_out = header[0] + args.prefix + header[1:] + args.suffix + "\n"
|
|
32 out.write(header_out)
|
|
33 else:
|
|
34 out.write(oneline)
|
|
35
|