2010 Appion Developer Workshop » History » Revision 8
Revision 7 (Neil Voss, 06/08/2010 10:23 AM) → Revision 8/18 (Neil Voss, 06/08/2010 10:23 AM)
h1. 2010 Appion Developer Workshop h2. Setting up a development enviroment h4. Subversion <pre> svn checkout http://emg.nysbc.org/svn/myami/trunk/ myami/ </pre> h4. 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. h4. 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/ ______ h2. 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 h2. Add an output directory to hierarchical classification * You cannot change the directory if the filesystem is full. ______ h2. 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. h2. Most important python files: h3. 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 h3. Appion Script hierarchy h4. 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 h4. 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@, h4. 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_ h4. 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) h4. 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_ manualpicker.py, tiltAutoAligner.py and _source:trunk/appion/bin/templateCorrelator.py_ templateCorrelator.py ______ h2. Organization of the PHP programs ______ h2. Create a program from scratch * Problem statement: I have program X that I want to put into the pipeline: ** EMAN 2d alignment, "refine2d.py":http://blake.bcm.tmc.edu/eman/eman1/progs/refine2d.py.html or "classalign2":http://blake.bcm.tmc.edu/eman/eman1/progs/classalign2.html ** Bsoft program, nothing really any good ______ h2. Create a program, database structure, and report pages from scratch (if time) * 3D MSA?