Actions
2010 Appion Developer Workshop » History » Revision 8
« Previous |
Revision 8/18
(diff)
| Next »
Neil Voss, 06/08/2010 10:23 AM
2010 Appion Developer Workshop¶
Setting up a development enviroment¶
Subversion¶
svn checkout http://emg.nysbc.org/svn/myami/trunk/ myami/
Sinedon.cfg¶
At AMI, you do not normally need a sinedon.cfg file, but if you have your own testing environment you will need one.
Web page¶
At AMI, put myamiweb into your ami_html directory and it will be available on both cronus3 and fly as http://cronus3.scripps.edu/~username/myamiweb/
You will need to run Eric's web setup wizard to get it working: http://cronus3.scripps.edu/~username/myamiweb/setup/
Add a new option to a program¶
- Problem statement: Add student's T distribution to maxlike alignment, see #552
- Goal: allow user to use the
-student
option for maxlike alignment using a radio button - Steps to implement:
- add feature to python code
- add command line input
- check flag to add to xmipp program
- insert value into database
- add feature to web page
- add radio button to web page
- add help message
- receive variable from $_POST
- check if value is valid
- add flag to command line
- add feature to python code
Add an output directory to hierarchical classification¶
- You cannot change the directory if the filesystem is full.
Organization of the Python programs¶
We have two major folders in the appion folder:
- appionlib: contains libraries, a collection of common functions that are needed by more than one python program, e.g., ssnrResolution, averageStack, and lowPassFilter.
- bin: contains the programs that take command line input, e.g., makestack2.py, templateCorrelator.py, maxlikeAlignment.py
Other useful directories:
- pyami: a collection of common functions to both appion and leginon, save MRC file, save SPIDER file, etc.
Most important python files:¶
Database mapping file¶
- source:trunk/appion/appionlib/appiondata.py: describes how the database is put together, if you need to add a new column go here
.bq see also source:trunk/leginon/leginondata.py and source:trunk/leginon/projectdata.py
Appion Script hierarchy¶
basicScript¶
- source:trunk/appion/appionlib/basicScript.py
- contains all the base functions:
setupParserOptions
,checkConflicts
,start
- used only for basic scripts outside of the pipeline, e.g., source:trunk/appion/bin/makeSnapshots.py, source:trunk/appion/bin/ApDogPicker.py
- write a log file
- running statistics
appionScript¶
- source:trunk/appion/appionlib/appionScript.py
- Most common function class used 68 programs in appion, e.g., source:trunk/appion/bin/uploadStack.py, source:trunk/appion/bin/subStack.py, and source:trunk/appion/bin/maxlikeAlignment.py
- based on basicScript, but
- adds database connection to log information about run
- adds default commandline options, such as
--runname
,--commit/--no-commit
,--rundir
,--projectid
,
appionLoop2¶
- source:trunk/appion/appionlib/appionLoop2.py
- based on appionScript but loops over all images in a session
- ideal when the same function needs to be run on all images, e.g. ACE
- used in 15 programs, e.g., source:trunk/appion/bin/pyace.py, source:trunk/appion/bin/pyace2.py, and source:trunk/appion/bin/makestack2.py
filterLoop¶
- source:trunk/appion/appionlib/filterLoop.py
- based on appionLoop2 but add low pass, high pass, plane regression and other filters
- used in only two functions, manualmask.py and source:trunk/appion/bin/jpgmaker.py (a program to make jpeg cache images of the session)
particleLoop2¶
- source:trunk/appion/appionlib/particleLoop2.py
- based on filterLoop but adds particle picking capabilies
- creates the jpeg with the circles
- uploads particle picks to the database
- used in 7 different particle pickers, e.g., source:trunk/appion/bin/manualpicker.py, source:trunk/appion/bin/tiltAutoAligner.py and source:trunk/appion/bin/templateCorrelator.py
Organization of the PHP programs¶
Create a program from scratch¶
- Problem statement: I have program X that I want to put into the pipeline:
- EMAN 2d alignment, refine2d.py or classalign2
- Bsoft program, nothing really any good
Create a program, database structure, and report pages from scratch (if time)¶
- 3D MSA?
Updated by Neil Voss over 14 years ago · 8 revisions