Actions
Leginon Developer Guide » History » Revision 5
« Previous |
Revision 5/23
(diff)
| Next »
Jim Pulokas, 08/27/2013 02:22 PM
Leginon Developer Guide¶
Overview of the code repository¶
Over the years, Leginon has grown and divided. With the addition of the Appion processing pipeline, several components that were once subsystems of Leginon were broken out to be used as a common tool set for both Leginon and Appion. The top level master package that now contains the entire software suite developed at AMI is called myami. Inside of myami you will find leginon, appion and all of these common packages. Here is a brief description of the contents of the AMI software repository:
- myami - the complete suite of software
- appion - the processing pipeline
- comarray - Python extension to retrieve COM SafeArrays into NumPy arrays (deprecated, see Installing comtypes instead)
- dbschema - If you are running your myami system out of a sandbox and frequently pulling changes from the repository, then your database schema is generally kept up to date automaticall. But most production installations update only between major revisions. The dbschema directory summarizes all of the database schema updates between revisions, which can be applied in sequence when doing a major jump in revisions.
- imageviewer - this is a newer image viewer widget for wx meant to replace the old ImageViewer widget in the Leginon GUI. So far only the tomography node uses it.
- install
- leginon - microscope control and automation
- modules
- myamiweb
- programs
- pyami
- pyscope
- redux
- sinedon
Brief description of some of the core code components¶
- leginondata.py and event.py contain the definitions of all classes of data that are passed around between nodes and/or stored in the database.
- node.py defines Node, the base class for all nodes. You will find a lot of the basic node functionality here, like passing events, storing user preferences, etc.
Brief description of some of the nodes¶
- targetwatcher.py defines the class TargetWatcher which includes basic functionality for processing targets that were produced by another node. The input is target list, which is handled by the processTargetListData method. This method loops over the targets, calling processTargetData on each one. The processTargetData method must be defined in a subclass.
- acquisition.py defines the Acquisition class, which is a subclass of TargetWatcher. It defines the processTargetData function such that an acquisition sequence happens at each target. More info, see: acquisition.py
Useful diagonosis scripts¶
- testing pyscope instrument functions.
Updated by Jim Pulokas about 11 years ago · 5 revisions