Developers guide

This guide is primarily intended to help noobs to both Appion and Programming in general get up and running in the development environment that we have created at AMI.
It is a good place to add notes, however basic, that may help someone else accomplish a task related to Appion software development.
Parts of this guide are specific to machines and the environment that we have at AMI. Our apologies.

  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
    4. Myami code module diagram
  2. Development Tools
    1. Redmine quick start - issue reporting and adding documentation
    2. Eclipse quick start - setting up an integrated development environment
    3. Subversion (SVN) - Tips for using our code repository (pre 3.3)
    4. Git (GIT) - Tips for using our repository (3.3+ and development trunk)
  3. Language and Technology Resources
    1. language specific tutorials, guides and tips
      1. HTML notes
      2. CSS notes
      3. PHP notes
      4. Python notes
      5. Javascript notes
    2. General Best Practices
    3. AMI's best practices
    4. Object Oriented Programming
    5. Useful shell commands
    6. Getting started with MySQL
  4. Installing Appion for development
    1. Running the code from your sandbox
  5. Adding a new program to the pipeline
    1. General Instructions
      1. Processing parts (Python)
        1. database access
      2. Web Parts (PHP)
        1. Adding an Appion job launch page
        2. reporting page
          1. Using for very simple PHP report pages
        3. database accesss
    2. Adding a refinement method (single and multi model) or any other method that requires a specialized job file to submit to a cluster
      1. Overview of launching, running, and uploading cluster jobs
      2. Python wrapper for 3rd party programs (Anchi)
      3. Modifications to (Christopher)
      4. Uploading results to the databse (Dmitry)
      5. Adding the user interface (Amber)
  6. Testing
    1. Test datasets at AMI
    2. Create Appion Session for testing purposes
    3. How to set up AMI databases on your local machine: Handy if you want to play with the databases without affecting anyone else.
    4. Automated testing
    5. How to test upload images with your own sandbox
    6. How to run manual picking and mask making
  7. Error Handling
    1. Error handling guide
  8. Adding pop-up Help
    1. adding popup help
  9. Making changes to database tables
    1. Database change procedure
  10. Other stuff
    1. Deprecated instructions for adding an Appion job launch page
    2. Where to find help
    3. Appion tricks
    4. Common variables used
    5. Appion Developer's Workshops
      1. 2010 Appion Developer Workshop
      2. 2011 Appion Developer Workshop
  11. Job submission vs direct Appion Script running from terminal What are the differences in database logging and resource usage.

Updated by Anchi Cheng almost 8 years ago · 62 revisions