Project

General

Profile

2010 Appion Developer Workshop » History » Version 11

Neil Voss, 06/09/2010 08:18 AM

1 1 Neil Voss
h1. 2010 Appion Developer Workshop
2
3
h2. Setting up a development enviroment
4
5
h4. Subversion
6
7
<pre>
8
svn checkout http://emg.nysbc.org/svn/myami/trunk/ myami/
9
</pre>
10
11
h4. Sinedon.cfg
12
13
At AMI, you do not normally need a sinedon.cfg file, but if you have your own testing environment you will need one.
14
15
h4. Web page
16
17
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/
18
19
You will need to run Eric's web setup wizard to get it working: http://cronus3.scripps.edu/~username/myamiweb/setup/
20
21
22
23
______
24
25
h2. Add a new option to a program
26
27 10 Neil Voss
[[2010 ADW/Add a new option to a program]]
28
29 2 Neil Voss
______
30 1 Neil Voss
31
h2. Organization of the Python programs
32
33 11 Neil Voss
[[2010 ADW/Organization of the Python programs]]
34
35 1 Neil Voss
We have two major folders in the appion folder:
36
37
* appionlib: contains libraries, a collection of common functions that are needed by more than one python program, e.g., ssnrResolution, averageStack, and lowPassFilter.
38
* bin: contains the programs that take command line input, e.g., makestack2.py, templateCorrelator.py, maxlikeAlignment.py
39
40
Other useful directories:
41
42
* pyami: a collection of common functions to both appion and leginon, save MRC file, save SPIDER file, etc.
43
44 6 Neil Voss
h2. Most important python files:
45 1 Neil Voss
46 6 Neil Voss
h3. Database mapping file
47 3 Neil Voss
48 1 Neil Voss
* source:trunk/appion/appionlib/appiondata.py: describes how the database is put together, if you need to add a new column go here
49
50 3 Neil Voss
.bq see also source:trunk/leginon/leginondata.py and source:trunk/leginon/projectdata.py
51 1 Neil Voss
52 6 Neil Voss
h3. Appion Script hierarchy
53 1 Neil Voss
54 6 Neil Voss
h4. basicScript
55 5 Neil Voss
56 1 Neil Voss
* source:trunk/appion/appionlib/basicScript.py
57 5 Neil Voss
* contains all the base functions: @setupParserOptions@, @checkConflicts@, @start@
58
* used only for basic scripts outside of the pipeline, e.g., _source:trunk/appion/bin/makeSnapshots.py_, _source:trunk/appion/bin/ApDogPicker.py_
59 1 Neil Voss
* write a log file
60 5 Neil Voss
* running statistics
61 1 Neil Voss
62 6 Neil Voss
h4. appionScript
63 5 Neil Voss
64
* source:trunk/appion/appionlib/appionScript.py
65
* 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_
66
* based on basicScript, but 
67
** adds database connection to log information about run
68 9 Neil Voss
** adds default commandline options, such as @--runname@, @--commit/--no-commit@, @--rundir@, @--projectid@, and @--description@ 
69 1 Neil Voss
70 9 Neil Voss
h4. appionLoop2
71
72 7 Neil Voss
* source:trunk/appion/appionlib/appionLoop2.py
73 1 Neil Voss
* based on appionScript but loops over all images in a session
74 9 Neil Voss
** adds default commandline options, such as @--sessionname@, @--preset@, @--limit@, @--continue@, @--shuffle@, and @--no-rejects@
75 1 Neil Voss
** requires @--runname@ to be defined
76 9 Neil Voss
* ideal when the same function needs to be run on all images, e.g. ACE
77 7 Neil Voss
* 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_
78
79
h4. filterLoop
80 1 Neil Voss
81
* source:trunk/appion/appionlib/filterLoop.py
82 7 Neil Voss
* based on appionLoop2 but add low pass, high pass, plane regression and other filters
83
* used in only two functions, manualmask.py and _source:trunk/appion/bin/jpgmaker.py_ (a program to make jpeg cache images of the session)
84
85
h4. particleLoop2
86
87
* source:trunk/appion/appionlib/particleLoop2.py
88
* based on filterLoop but adds particle picking capabilies
89
** creates the jpeg with the circles
90
** uploads particle picks to the database
91
* 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_
92
93
94 8 Neil Voss
______
95 7 Neil Voss
96
h2. Organization of the PHP programs
97 1 Neil Voss
98 11 Neil Voss
[[2010 ADW/Organization of the PHP programs]]
99 1 Neil Voss
100
______
101
102
h2. Create a program from scratch
103 11 Neil Voss
104
[[2010 ADW/Create a program from scratch]]
105 1 Neil Voss
106
* Problem statement: I have program X that I want to put into the pipeline:
107
** 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
108
** Bsoft program, nothing really any good
109
110
111
______
112
113
h2. Create a program, database structure, and report pages from scratch (if time)
114
115
* 3D MSA?