Size: 762
Comment:
|
← Revision 50 as of 2023-01-02 19:26:26 ⇥
Size: 2606
Comment: Build system
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Aside from the autogenerated docs: * Here is a [wiki:EMAN1To2Translation Table of translations from EMAN1 functions -> EMAN2] |
=== 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]] |
Line 4: | Line 18: |
==== 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]] |
|
Line 5: | Line 29: |
Programming Internals: | ==== 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]] |
Line 7: | Line 34: |
EMAN2 uses [http://www.boost.org/libs/python/doc/ Boost.python] to wrap c++ functions to Python. | ==== 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 |
Line 9: | Line 41: |
[http://www.boost.org/libs/python/pyste/ Pyste] is a Boost.Python code generator to automate this process. In EMAN2 there is a script create_boost_python in /eman2/libpyEM directory calls Pyste to create c++ wrapping files libpy***.cpp. Then the c++ compiler will create libraries which contain all the Python function call of EMAN2. Current release of Pyste has a dificit for the default argument handling. So please replace two of your Pyste files in Python site-packages with attached files. |
{{attachment:sphere_cylinder_dist_grey_c.png}} |
Documentation for Python or C++ Programmers
Introductory concepts
Parameters/Metadata for applications, not associated with a specific image, stored in bdb:project
- Specific object types
Intermediate Concepts
Advanced Topics
Abstract factories in python/EMAN2 (Modular classes, like processors, projectors, reconstructors, etc.)
Detailed Documentation on all Classes/Methods/Functions
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