Bug #1295
closedprotomo azimuth
0%
Description
Currently for the first iteration of a protomo run, the azimuth is being set to 90 degrees. Protomo then refines the azimuth iteratively. It would make much more sense to query the azimuth from the tomography goniometer model. In other words, somewhere in the db, we keep a value called phi that models the position of the tilt axis. Azimuth and phi are the same thing. Changing this would make the auto tilt series+tomogram routine a lot better too because the tilt axis would be better modeled. One issue will be that leginon and protomo use different conventions for how to measure where the tilt axis is. Protomo measures from x, and I believe that Leginon measures from y. In other words, if phi is 0, then azimuth would be 90. Another potential problem is that in my hands protomo mirrors images along x which would mean that if phi is 5 then azimuth would be 85. Right now, the first iteration is suboptimal because the function convertShiftsToParams sets azimuth to 90. This probably works for y'all because your tilt axis is close to y.
Updated by Anchi Cheng over 13 years ago
- Status changed from New to In Code Review
- Assignee changed from Anchi Cheng to Amber Herold
- Target version set to Appion/Leginon 2.2.0
quick change r15631 to get default azimuth from Leginon prediction model.
Scott, please be the tester since it makes little difference to us.
Updated by Scott Stagg over 13 years ago
Your changes work for me, but there were some problems that I don't understand. First, I got these exceptions that it recovered from (i.e. it continued):
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib64/python2.4/threading.py", line 442, in __bootstrap
self.run()
File "/usr/local/myami_dev/appion/appionlib/apThread.py", line 43, in run
self.log('run start1')
File "/usr/local/myami_dev/appion/appionlib/apThread.py", line 37, in log
logfile = open(self.logfilename, 'a')
IOError: [Errno 13] Permission denied: 'thread000.log'Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib64/python2.4/threading.py", line 442, in __bootstrap
self.run()
File "/usr/local/myami_dev/appion/appionlib/apThread.py", line 43, in run
self.log('run start1')
File "/usr/local/myami_dev/appion/appionlib/apThread.py", line 37, in log
logfile = open(self.logfilename, 'a')
IOError: [Errno 13] Permission denied: 'thread001.log'
Second I always get the exception below even with the myami-2.1 release. Do I have something wrong with my database?
Traceback (most recent call last):
File "/usr/local/myami_dev/appion/bin/tomoaligner.py", line 488, in ?
app.close()
File "/usr/local/myami_dev/appion/appionlib/appionScript.py", line 325, in close
clustdata = self.getClusterJobData()
File "/usr/local/myami_dev/appion/appionlib/appionScript.py", line 183, in getClusterJobData
clustdatas = clustq.query()
File "/usr/local/myami_dev/sinedon/data.py", line 395, in query
results = db.query(self, **kwargs)
File "/usr/local/myami_dev/sinedon/dbdatakeeper.py", line 85, in query
result = self._query(*args, **kwargs)
File "/usr/local/myami_dev/sinedon/dbdatakeeper.py", line 108, in query
myresult = result.fetchall()
File "/usr/local/myami_dev/sinedon/sqldict.py", line 561, in fetchall
cursorresult = self._format(subfetch, qikey)
File "/usr/local/myami_dev/sinedon/sqldict.py", line 656, in _format
newdata.friendly_update(r)
File "/usr/local/myami_dev/sinedon/data.py", line 430, in friendly_update
super(Data, self).friendly_update(other)
File "/usr/local/myami_dev/sinedon/newdict.py", line 88, in friendly_update
self[key] = other[key]
File "/usr/local/myami_dev/sinedon/data.py", line 504, in setitem
super(Data, self)._setitem__(key, value)
File "/usr/local/myami_dev/sinedon/newdict.py", line 79, in setitem
value = validator(value)
File "/usr/local/myami_dev/sinedon/data.py", line 320, in validator
raise ValueError('need instance of %s, got %s instead' % (cls, value.dataclass))
ValueError: need instance of <class 'leginon.leginondata.SessionData'>, got <class 'leginondata.SessionData'> instead
Exception exceptions.ValueError: <exceptions.ValueError instance at 0x1b1f1758> in <bound method protomoAligner.__del__ of <__main__.protomoAligner object at 0x1b2ae0d0>> ignored
Updated by Anchi Cheng over 13 years ago
Scott, these two are separate bugs. I will start separate issues for them.
Updated by Amber Herold almost 13 years ago
- Status changed from In Code Review to Closed
- Assignee changed from Amber Herold to Anchi Cheng
code looks good - might be nice to have a comment on what is happening here:
return 90.0 - (results[0]['predicted position']['phi']) * 180.0 / 3.14159
I'll close this and if you want to comment anchi you can add it to this issue, rather than in the code.