Project

General

Profile

2010 Appion Developer Workshop » History » Revision 6

Revision 5 (Neil Voss, 06/08/2010 10:15 AM) → Revision 6/18 (Neil Voss, 06/08/2010 10:15 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. h3. Most important python files: 

 h3. h4. 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. h4. Appion Script hierarchy 

 h4. h5. 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. h5. 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, -- 


 *** source:trunk/appion/appionlib/appionLoop2.py 
 **** source:trunk/appion/appionlib/filterLoop.py 
 ***** source:trunk/appion/appionlib/particleLoop2.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?