==== Documentation for Python or C++ Programmers ==== === Introductory concepts === * [[EMAN2:PythonStyleGuide|EMAN2 Python Programming Style Guide]] * [[Eman2:ProgQuickstart|EMAN2 python programming quickstart]] * [[EMAN2:ImageFormats|Image Formats in EMAN2]] * [[Eman2:DataStorage|EMAN2 data storage & format conversion]] * [[Eman2:NumPy|Using NumPy with EMAN2]] * [[Eman2:JSStorage|EMAN2 JSON file access from Python]] * [[Eman2:Metadata|Parameters/Metadata appearing in EMData attributes (and stored on disk with the image), accessed with get_attr and set_attr]] * [[EMAN2:EMAN1To2Translation|Limited Table of translations from EMAN1 functions -> EMAN2]] * [[EMAN2:PMWorkflow|Modifying the EMAN2 projectmanager workflow]] * Specific object types * [[Eman2:TransformInPython|Using the Transform object (python) (arbitrary 2-D and 3-D transformations)]] * [[Eman2:Reconstructors|Using Reconstructor classes]] === Intermediate Concepts === * [[Eman2:CProgQuickstart|EMAN2 C++ programming quickstart]] * [[Eman2:UsingFTGL|Using FTGL in python/EMAN2]] * [[Eman2:Using3DWidget|Using the EMScene3D widget (3-D object display)]] * [[Eman2:New3DItem|How to write an new Item3D widget for the EMScene3D widget]] * [[Eman2:PMCustomization|Customizing the projectmanager workflow]] * [[EMAN2:PMWorkflow|Tutorial for adding an e2program to projectmanager]] * [[Eman2:AddingWizard| Adding a Wizard to projectmanager]] * [[Eman2:ProgrammingPM|Programming e2projectmanager.py]] === Advanced Topics === * [[Eman2:UsingCudaFromC++|The EMData class and CUDA]] * [[Eman2:FactoriesInPython|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 /* obsolete * [[Eman2:BdbStorage|EMAN2 BDB access from Python (obsolete)]] * [[Eman2:AppMetadata|Parameters/Metadata for applications, not associated with a specific image, stored in bdb:project]] */ {{attachment:sphere_cylinder_dist_grey_c.png}}