Project

General

Profile

Actions

Developers guide » History » Revision 21

« Previous | Revision 21/62 (diff) | Next »
Amber Herold, 08/02/2011 10:02 AM


Developers guide

Proposed content:
 
  1. System Overview
    1. Leginon
      1. Scope
      2. Windows Machine
    2. Appion
      1. Web Parts - web server
      2. Python Parts - processing server
      3. 3rd party apps
    3. Clusters
       
  2. Development Tools
    1. Redmine
    2. Eclipse
    3. SVN
       
  3. Languages and Technology
    1. html, css, PHP, Python, Javascript, mySQL
    2. best practices for these
       
  4. Installing Appion for development
  5. Myami Code Tree
  6. Running the code from your sandbox
     
  7. Adding a new program to the pipeline
    1. General Insructions
      1. python parts
        1. how to add a new refinement method (single and multi-model)
      2. Web Parts
        1. launch page
        2. How to add a launch form for a new refine type
          1. parameter checking
        3. reporting pages
      3. Database Parts
        1. python side
        2. PHP side
    2. Adding a refinement method (single and multi model)
      1. Python wrapper for 3rd party programs (Anchi)
      2. Modifications to runJob.py (Christopher)
      3. Uploading results to the databse (Dmitry)
      4. Adding the user interface (Amber)
  8. Testing
  9. Error Handling
  10. Issue reporting and life-cycle
    1. Issue Workflow Tutorial: A guide to setting the Issue status.
  11. Checking your code into the main trunk
  12. Appion/Leginon Release Versioning
  13. Adding Documentation
  14. Adding pop-up Help
  15. Where to find help

Common variables used

  • $outdir is the directory that contains the disk, session, jobtype, but not the runname: For example: /data/appion/10dec16a/extract
  • $rundir = $outdir + runname, For example: /data/appion/10dec16a/extract/dogrun1
    note: appion python code only accepts $rundir
  • $description
  • $commit
  • $command
  • $sessiondata'
  • $sessionid vs. $sessionId vs. $expid vs. $expId
  • $apix vs. $pixelsize
  • $box vs. $boxsize

variable dump

cd ~/myami/myamiweb/processing
cat *.php | grep '\$[A-Za-z]' | sed 's/\$_[A-Za-z]*//' | sed 's/[^$]*\(\$[A-Za-z0-9]*\)[^$]*/\1 \
/g' | sort | uniq -c | sort -rn | head -50

<# of occurrences> <variable name>

1066 $command 
1001 $particle 
 943 $ 
 854 $expId 
 630 $i 
 387 $formAction 
 385 $html 
 366 $javascript 
 349 $outdir 
 337 $projectId 
 327 $runname 
 326 $sessionId 
 299 $extra 
 213 $description 
 200 $graph 
 198 $stackid 
 198 $sessioninfo 
 186 $apix 
 180 $sessiondata 
 162 $display 
 160 $title 
 158 $templatetable 
 157 $user 
 136 $line 
 131 $javafunctions 
 127 $heading 
 126 $numpart 
 125 $jobinfo 
 117 $errors 
 114 $stackinfo 
 110 $t 
 110 $key 
 109 $s 
 108 $templateinfo 
 101 $sessionpath 
  98 $bin 
  96 $tomogram 
  96 $sub 
  96 $nproc 
  96 $filename 
  94 $stackId 
  91 $headinfo 
  90 $sessionname 
  90 $data 
  89 $j 
  89 $cmd 
  89 $box 
  89 $alignId 
  86 $r 

Automated testing

Using basicReport.inc for PHP report pages

Updated by Amber Herold over 13 years ago · 21 revisions