Project

General

Profile

Actions

2010 Appion Developer Workshop » History » Revision 10

« Previous | Revision 10/18 (diff) | Next »
Neil Voss, 06/09/2010 08:17 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

2010 ADW/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:
    1. add feature to python code
      1. add command line input
      2. check flag to add to xmipp program
      3. insert value into database
    2. add feature to web page
      1. add radio button to web page
      2. add help message
      3. receive variable from $_POST
      4. check if value is valid
      5. add flag to command line

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, and --description

appionLoop2

  • source:trunk/appion/appionlib/appionLoop2.py
  • based on appionScript but loops over all images in a session
    • adds default commandline options, such as --sessionname, --preset, --limit, --continue, --shuffle, and --no-rejects
    • requires --runname to be defined
  • 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:

Create a program, database structure, and report pages from scratch (if time)

  • 3D MSA?

Updated by Neil Voss over 14 years ago · 10 revisions