-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathselect_paramout.py
More file actions
executable file
·80 lines (52 loc) · 1.7 KB
/
select_paramout.py
File metadata and controls
executable file
·80 lines (52 loc) · 1.7 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env python
import os,sys
import subprocess
import optparse
#==========================
def setupParserOptions():
parser = optparse.OptionParser()
parser.set_usage("%prog -p <paramout>")
parser.add_option("-p",dest="param",type="string",metavar="FILE",
help="EMAN2 output parameter file")
parser.add_option("--num",dest="num",type="float",metavar="FLOAT",
help="Number of models used")
options,args = parser.parse_args()
if len(args) > 1:
parser.error("Unknown commandline options: " +str(args))
if len(sys.argv) < 2:
parser.print_help()
sys.exit()
params={}
for i in parser.option_list:
if isinstance(i.dest,str):
params[i.dest] = getattr(options,i.dest)
return params
def select(params):
numMods = params['num']
print 'numMods = %02d' %(numMods)
if float(numMods) == 1:
fopen = open(params['param'],'r')
fout = open('%s_model00.par' %(params['param']),'w')
for line in fopen:
l = line.split()
group = l[5]
if float(group) == 999:
fout.write(line)
fopen.close()
if float(numMods) > 1:
modCount = 0
numMods = numMods - 1
while modCount <= numMods:
print "Working on model #%01d" %(modCount)
fopen = open(params['param'],'r')
fout = open('%s_model%02d.par' %(params['param'],modCount),'w')
for line in fopen:
l = line.split()
group = l[5]
if float(group) == modCount:
fout.write(line)
fopen.close()
modCount = modCount + 1
if __name__ == "__main__":
params=setupParserOptions()
select(params)