2010 Appion Developer Workshop » History » Version 10
Neil Voss, 06/09/2010 08:17 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 | 1 | Neil Voss | * Problem statement: Add student's T distribution to maxlike alignment, see #552 |
30 | * Goal: allow user to use the @-student@ option for maxlike alignment using a radio button |
||
31 | * Steps to implement: |
||
32 | *# add feature to python code |
||
33 | *## add command line input |
||
34 | *## check flag to add to xmipp program |
||
35 | *## insert value into database |
||
36 | *# add feature to web page |
||
37 | *## add radio button to web page |
||
38 | *## add help message |
||
39 | *## receive variable from $_POST |
||
40 | *## check if value is valid |
||
41 | *## add flag to command line |
||
42 | |||
43 | 2 | Neil Voss | h2. Add an output directory to hierarchical classification |
44 | 1 | Neil Voss | |
45 | 2 | Neil Voss | * You cannot change the directory if the filesystem is full. |
46 | 1 | Neil Voss | |
47 | ______ |
||
48 | |||
49 | h2. Organization of the Python programs |
||
50 | |||
51 | We have two major folders in the appion folder: |
||
52 | |||
53 | * appionlib: contains libraries, a collection of common functions that are needed by more than one python program, e.g., ssnrResolution, averageStack, and lowPassFilter. |
||
54 | * bin: contains the programs that take command line input, e.g., makestack2.py, templateCorrelator.py, maxlikeAlignment.py |
||
55 | |||
56 | Other useful directories: |
||
57 | |||
58 | * pyami: a collection of common functions to both appion and leginon, save MRC file, save SPIDER file, etc. |
||
59 | |||
60 | 6 | Neil Voss | h2. Most important python files: |
61 | 1 | Neil Voss | |
62 | 6 | Neil Voss | h3. Database mapping file |
63 | 3 | Neil Voss | |
64 | 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 |
65 | |||
66 | 3 | Neil Voss | .bq see also source:trunk/leginon/leginondata.py and source:trunk/leginon/projectdata.py |
67 | 1 | Neil Voss | |
68 | 6 | Neil Voss | h3. Appion Script hierarchy |
69 | 1 | Neil Voss | |
70 | 6 | Neil Voss | h4. basicScript |
71 | 5 | Neil Voss | |
72 | 1 | Neil Voss | * source:trunk/appion/appionlib/basicScript.py |
73 | 5 | Neil Voss | * contains all the base functions: @setupParserOptions@, @checkConflicts@, @start@ |
74 | * used only for basic scripts outside of the pipeline, e.g., _source:trunk/appion/bin/makeSnapshots.py_, _source:trunk/appion/bin/ApDogPicker.py_ |
||
75 | 1 | Neil Voss | * write a log file |
76 | 5 | Neil Voss | * running statistics |
77 | 1 | Neil Voss | |
78 | 6 | Neil Voss | h4. appionScript |
79 | 5 | Neil Voss | |
80 | * source:trunk/appion/appionlib/appionScript.py |
||
81 | * 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_ |
||
82 | * based on basicScript, but |
||
83 | ** adds database connection to log information about run |
||
84 | 9 | Neil Voss | ** adds default commandline options, such as @--runname@, @--commit/--no-commit@, @--rundir@, @--projectid@, and @--description@ |
85 | 1 | Neil Voss | |
86 | 7 | Neil Voss | h4. appionLoop2 |
87 | 1 | Neil Voss | |
88 | 9 | Neil Voss | |
89 | |||
90 | |||
91 | |||
92 | |||
93 | 7 | Neil Voss | * source:trunk/appion/appionlib/appionLoop2.py |
94 | 1 | Neil Voss | * based on appionScript but loops over all images in a session |
95 | 9 | Neil Voss | ** adds default commandline options, such as @--sessionname@, @--preset@, @--limit@, @--continue@, @--shuffle@, and @--no-rejects@ |
96 | ** requires @--runname@ to be defined |
||
97 | 7 | Neil Voss | * ideal when the same function needs to be run on all images, e.g. ACE |
98 | * 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_ |
||
99 | |||
100 | h4. filterLoop |
||
101 | |||
102 | * source:trunk/appion/appionlib/filterLoop.py |
||
103 | * based on appionLoop2 but add low pass, high pass, plane regression and other filters |
||
104 | * used in only two functions, manualmask.py and _source:trunk/appion/bin/jpgmaker.py_ (a program to make jpeg cache images of the session) |
||
105 | |||
106 | h4. particleLoop2 |
||
107 | |||
108 | * source:trunk/appion/appionlib/particleLoop2.py |
||
109 | * based on filterLoop but adds particle picking capabilies |
||
110 | ** creates the jpeg with the circles |
||
111 | ** uploads particle picks to the database |
||
112 | 8 | Neil Voss | * 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_ |
113 | 7 | Neil Voss | |
114 | |||
115 | 1 | Neil Voss | ______ |
116 | |||
117 | h2. Organization of the PHP programs |
||
118 | |||
119 | |||
120 | |||
121 | ______ |
||
122 | |||
123 | h2. Create a program from scratch |
||
124 | |||
125 | * Problem statement: I have program X that I want to put into the pipeline: |
||
126 | ** 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 |
||
127 | ** Bsoft program, nothing really any good |
||
128 | |||
129 | |||
130 | ______ |
||
131 | |||
132 | h2. Create a program, database structure, and report pages from scratch (if time) |
||
133 | |||
134 | * 3D MSA? |