import sys, re, os
import MosflmInterface
sys.path.append("/home/graeme/noddy/xsd/python")
import XSD
directory = "/data/graeme/ESRF/DNA-6Dec02/TestSet"
templateList = ["DNA_1_###.img",
"dntr_3_###.img",
"dntr_9_###.img",
"gitest_4_###.img",
"DNA_2_###.img",
"dntr_4_###.img",
"ferritin_1_###.img",
"mystery_1_###.img",
"DNA_3_###.img",
"dntr_5_###.img",
"ferritin_2_###.img",
"mystery_2_###.img",
"DNA_4_###.img",
"dntr_6_###.img",
"ferritin_3_###.img",
"dntr_1_###.img",
"dntr_7_###.img",
"gitest_1_###.img",
"dntr_2_###.img",
"dntr_8_###.img",
"gitest_2_###.img"]
MosflmInterface.SetMosflmInterfaceFile("fluffy-bunny.out")
MosflmInterface.SetMosflmExecutable("/home/graeme/mosflm-gui/mosflm/bin/ipmosflm")
for template in templateList:
print "Testing with template " + str(template)
regexp = re.compile(r'(.*)_(\#*)\.(.*)')
match = regexp.match(template)
firstImagePrefix = match.group(1)
path = "/emergency/graeme/processing/Mosflm_" + firstImagePrefix
for extra in ["1", "2", "12"]:
try:
os.mkdir(path + extra)
except OSError, message:
print message
xml1 = "<?xml version='1.0'?><!DOCTYPE index_request>" + \
"<index_request><target><symmetry></symmetry>" + \
"<cell><a></a><b></b><c></c><alpha></alpha><beta></beta>" + \
"<gamma></gamma></cell></target><experiment><wavelength>" + \
"</wavelength><distance></distance></experiment>" + \
"<fileinfo><template>" + \
template + \
"</template><directory>" + \
directory + \
"</directory><matrix_file></matrix_file></fileinfo>" + \
"<detector><type>adsc</type></detector><beam><x>93.63</x>" + \
"<y>95.19</y></beam><image>1</image></index_request>"
xml2 = "<?xml version='1.0'?><!DOCTYPE index_request>" + \
"<index_request><target><symmetry></symmetry>" + \
"<cell><a></a><b></b><c></c><alpha></alpha><beta></beta>" + \
"<gamma></gamma></cell></target><experiment><wavelength>" + \
"</wavelength><distance></distance></experiment>" + \
"<fileinfo><template>" + \
template + \
"</template><directory>" + \
directory + \
"</directory><matrix_file></matrix_file></fileinfo>" + \
"<detector><type>adsc</type></detector><beam><x>93.63</x>" + \
"<y>95.19</y></beam><image>2</image></index_request>"
xml12 = "<?xml version='1.0'?><!DOCTYPE index_request>" + \
"<index_request><target><symmetry></symmetry>" + \
"<cell><a></a><b></b><c></c><alpha></alpha><beta></beta>" + \
"<gamma></gamma></cell></target><experiment><wavelength>" + \
"</wavelength><distance></distance></experiment>" + \
"<fileinfo><template>" + \
template + \
"</template><directory>" + \
directory + \
"</directory><matrix_file></matrix_file></fileinfo>" + \
"<detector><type>adsc</type></detector><beam><x>93.63</x>" + \
"<y>95.19</y></beam><image>1</image><image>2</image>" + \
"</index_request>"
index_request1 = XSD.Index_request()
index_request2 = XSD.Index_request()
index_request12 = XSD.Index_request()
dict = index_request1.XMLStringToDict(xml1)
index_request1.fromDict(dict["index_request"])
dict = index_request2.XMLStringToDict(xml2)
index_request2.fromDict(dict["index_request"])
dict = index_request12.XMLStringToDict(xml12)
index_request12.fromDict(dict["index_request"])
MosflmInterface.RestartMosflm(3)
MosflmInterface.SetWorkingDirectory(path + "2")
index_response2 = MosflmInterface.do_index_request(index_request2, 1)
d2 = { }
d2["index_response"] = index_response2.toDict()
print index_response2.DictToXML(d2)
MosflmInterface.RestartMosflm(3)
MosflmInterface.SetWorkingDirectory(path + "12")
index_response12 = MosflmInterface.do_index_request(index_request12, 1)
d12 = { }
d12["index_response"] = index_response12.toDict()
print index_response2.DictToXML(d12)
MosflmInterface.RestartMosflm(3)
MosflmInterface.SetWorkingDirectory(path + "1")
index_response1 = MosflmInterface.do_index_request(index_request1, 1)
d1 = { }
d1["index_response"] = index_response1.toDict()
print index_response1.DictToXML(d1)
if d1["index_response"]["status"]["code"] != "ok":
print "Indexing failed!"
print index_response1.DictToXML(d1)
else:
print index_response1.DictToXML(d1)
xml = "<?xml version='1.0'?>" + \
"<!DOCTYPE mosaicity_request><mosaicity_request/>"
mosaicity_request = XSD.Mosaicity_request()
dict = mosaicity_request.XMLStringToDict(xml)
mosaicity_request.fromDict(dict["mosaicity_request"])
mosaicity_response = \
MosflmInterface.do_mosaicity_request(mosaicity_request)
d = { }
d["mosaicity_response"] = mosaicity_response.toDict()
print mosaicity_response.DictToXML(d)
xml = "<?xml version='1.0'?><!DOCTYPE strategy_request>" + \
"<strategy_request><strategy_settings><resolution_limits>" + \
"<upper><isotropic>2</isotropic></upper><lower>" + \
"<isotropic>2</isotropic></lower></resolution_limits>" + \
"</strategy_settings></strategy_request>"
strategy_request = XSD.Strategy_request()
dict = strategy_request.XMLStringToDict(xml)
strategy_request.fromDict(dict["strategy_request"])
strategy_response = MosflmInterface.do_strategy_request(strategy_request)
d = { }
d["strategy_response"] = strategy_response.toDict()
print strategy_response.DictToXML(d)
xml = "<?xml version='1.0'?><!DOCTYPE single_integrate_request>" + \
"<single_integrate_request><image>1</image>" + \
"</single_integrate_request>"
single_integrate_request = XSD.Single_integrate_request()
dict = single_integrate_request.XMLStringToDict(xml)
single_integrate_request.fromDict(dict["single_integrate_request"])
single_integrate_response = \
MosflmInterface.do_single_integrate_request(single_integrate_request)
d = { }
d["single_integrate_response"] = single_integrate_response.toDict()
print single_integrate_response.DictToXML(d)