-
Notifications
You must be signed in to change notification settings - Fork 11
/
mess2fasta.py
executable file
·37 lines (28 loc) · 1.34 KB
/
mess2fasta.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python
from optparse import OptionParser
################################################################################
# mess2fa.py
#
# Convert a mess of nt's and numbers and spaces into a neat fasta file
################################################################################
################################################################################
# main
################################################################################
def main():
usage = 'usage: %prog [options] <mess file>'
parser = OptionParser(usage)
parser.add_option('-d','--header', dest='header', default='mess', help='Fasta header [Default: %default]')
parser.add_option('-u', '--upper', dest='upper', action='store_true', default=False, help='Uppercase all nucleotides [Default: %default]')
(options,args) = parser.parse_args()
allowed_nts = set(['A','C','G','T','N','a','c','g','t','n'])
seq = ''
for line in open(args[0]):
seq += ''.join([nt for nt in line if nt in allowed_nts])
if options.upper:
seq = ''.join([nt.upper() for nt in seq])
print '>%s\n%s' % (options.header,seq)
################################################################################
# __main__
################################################################################
if __name__ == '__main__':
main()