=== Documentation for Python or C++ Programmers === ==== Introductory concepts ==== * [[EMAN2PythonStyleGuide|EMAN2 Python Programming Style Guide]] * [[Eman2ProgQuickstart|EMAN2 python programming quickstart]] * [[EMAN2ImageFormats|Image Formats in EMAN2]] * [[Eman2DataStorage|EMAN2 data storage & format conversion]] * [[Eman2NumPy|Using NumPy with EMAN2]] * [[Eman2JSStorage|EMAN2 JSON file access from Python]] * [[Eman2BdbStorage|EMAN2 BDB access from Python]] * [[Eman2Metadata|Parameters/Metadata appearing in EMData attributes (and stored on disk with the image), accessed with get_attr and set_attr]] * [[Eman2AppMetadata|Parameters/Metadata for applications, not associated with a specific image, stored in bdb:project]] * [[EMAN1To2Translation|Limited Table of translations from EMAN1 functions -> EMAN2]] * [[EMAN2PMWorkflow|Modifying the EMAN2 projectmanager workflow]] * Specific object types * [[Eman2TransformInPython|Using the Transform object (python) (arbitrary 2-D and 3-D transformations)]] * [[Eman2Reconstructors|Using Reconstructor classes]] ==== Intermediate Concepts ==== * [[Eman2CProgQuickstart|EMAN2 C++ programming quickstart]] * [[Eman2ProgOverview|How to add new capabilities to EMAN2 in C++]] * [[Eman2UsingFTGL|Using FTGL in python/EMAN2]] * [[Eman2Using3DWidget|Using the EMScene3D widget (3-D object display)]] * [[Eman2New3DItem|How to write an new Item3D widget for the EMScene3D widget]] * [[Eman2PMCustomization|Customizing the projectmanager workflow]] * [[EMAN2PMWorkflow|Tutorial for adding an e2program to projectmanager]] * [[Eman2AddingWizard| Adding a Wizard to projectmanager]] * [[Eman2ProgramingPM|Programming e2projectmanager.py]] ==== Advanced Topics ==== * [[Eman2UsingCudaFromC++|The EMData class and CUDA]] * [[Eman2FactoriesInPython|Abstract factories in python/EMAN2]] (Modular classes, like processors, projectors, reconstructors, etc.) * [[EMAN2/BuildSystem|Build System]] ==== Detailed Documentation on all Classes/Methods/Functions ==== * [[http://blake.bcm.edu/doxygen|Autogenerated Python/C++ Documentation (Doxygen)]] * There are a LOT of classes in the automatic docs. Basic images are represented by the EMData class * The EMData methods process, cmp, align, and project are modular methods with many available functions. Use dump_processors(), dump_cmps(), etc. * There are a few classes like analyzers and reconstructors which are not methods of EMData * Many utility functions are static members of EMUtil {{attachment:sphere_cylinder_dist_grey_c.png}}