Difference between revisions of "Version 3.0 Projects"

From Open Babel
Jump to: navigation, search
Line 1: Line 1:
 
 
This page itemizes some projects for version 3.0, targeted for a release date of (???)
 
This page itemizes some projects for version 3.0, targeted for a release date of (???)
  
 +
==Key Frameworks==
 +
The release will include several types of key chemical "frameworks."
 +
* Formats (including molecules, reactions, grids/cubes, trajectories/animations)
 +
* Fingerprints // Filtering (SMARTS, Descriptors, etc.)
 +
* Fragments // Force Fields (building, depiction)
 +
* Flexibility (scripting languages, 3rd party development, open source)
 +
 +
Each of these frameworks is already available in Open Babel 2.1, but are not always easily approachable. Documentation and tutorials continue to improve, but in some cases, continuing development requires some backwards-incompatible changes.
 +
 +
==General projects==
 +
 +
* Atom indexing from 0 (i.e., all data finally indexed from 0)
 +
** This will require considerable time to stabilize the code after this change
 +
* Stereochemistry updates
 +
* Valence model updates
 +
** Retain any and all formal charges
 +
** Valence and aromaticity models for different formats (e.g., SMILES is different from Tripos Mol2)
 +
* Consider using base libraries
 +
** Boost
 +
** Eigen
 +
** GMM
 +
** GNU Science Library (GSL)
 +
* Header reorganization
 +
** Eliminate iostream from public headers (use iosfwd, etc.) to minimize compile and performance hit
 +
** Minimize ABI / API breaking via opaque pointers
 +
** Use minimal #include statements in public headers (and class stubs as needed)
 
* Revisit and refactor classes, methods (eliminate deprecated methods, migrate some methods to/from base classes)
 
* Revisit and refactor classes, methods (eliminate deprecated methods, migrate some methods to/from base classes)
 
** Continuing [[Developer:Archeology|Software Archeology]]
 
** Continuing [[Developer:Archeology|Software Archeology]]
* Atom indexing from 0 (i.e., all data finally indexed from 0)
+
** Generalization of OBBond class
* Header reorganization (use minimal #include statements in public headers)
+
*** Support for ionic bonds, hydrogen bonds, multi-center bonds, etc.
* Generalization of OBBond class
+
** Generalization of queries and filters (beyond just SMARTS matching)
** Support for ionic bonds, hydrogen bonds, multi-center bonds, etc.
+
 
* Generalization of queries (beyond just SMARTS matching)
+
* Performance improvements
* Use of base libraries (e.g., Boost)
+
** SMARTS performance
* Reformulation of 0D stereochemistry
+
** Graph symmetry
 +
** Atom typing
 +
** Minimize use of SSSR (smallest ring size already determined by FindRingAtomsAndBonds)
 +
 
 +
* Plugin module improvements
 +
** Fingerprints, force fields, formats
 +
** Descriptors, filters
 +
** Load only as needed
 +
 
 +
* Support for chemical data types:
 +
** QM data support
 +
*** Vibrational modes, etc.
 +
*** Orbital energies (eigenvalues, eigenvectors)
 +
*** Cube files, grids, etc.
 +
** Point group and space group symmetry perception
 +
** Existing PDB, CML, SDF properties and metadata
 +
** Keywords, author, references, etc.
  
 
[[Category:Projects]]
 
[[Category:Projects]]

Revision as of 14:46, 26 March 2007

This page itemizes some projects for version 3.0, targeted for a release date of (???)

Key Frameworks

The release will include several types of key chemical "frameworks."

  • Formats (including molecules, reactions, grids/cubes, trajectories/animations)
  • Fingerprints // Filtering (SMARTS, Descriptors, etc.)
  • Fragments // Force Fields (building, depiction)
  • Flexibility (scripting languages, 3rd party development, open source)

Each of these frameworks is already available in Open Babel 2.1, but are not always easily approachable. Documentation and tutorials continue to improve, but in some cases, continuing development requires some backwards-incompatible changes.

General projects

  • Atom indexing from 0 (i.e., all data finally indexed from 0)
    • This will require considerable time to stabilize the code after this change
  • Stereochemistry updates
  • Valence model updates
    • Retain any and all formal charges
    • Valence and aromaticity models for different formats (e.g., SMILES is different from Tripos Mol2)
  • Consider using base libraries
    • Boost
    • Eigen
    • GMM
    • GNU Science Library (GSL)
  • Header reorganization
    • Eliminate iostream from public headers (use iosfwd, etc.) to minimize compile and performance hit
    • Minimize ABI / API breaking via opaque pointers
    • Use minimal #include statements in public headers (and class stubs as needed)
  • Revisit and refactor classes, methods (eliminate deprecated methods, migrate some methods to/from base classes)
    • Continuing Software Archeology
    • Generalization of OBBond class
      • Support for ionic bonds, hydrogen bonds, multi-center bonds, etc.
    • Generalization of queries and filters (beyond just SMARTS matching)
  • Performance improvements
    • SMARTS performance
    • Graph symmetry
    • Atom typing
    • Minimize use of SSSR (smallest ring size already determined by FindRingAtomsAndBonds)
  • Plugin module improvements
    • Fingerprints, force fields, formats
    • Descriptors, filters
    • Load only as needed
  • Support for chemical data types:
    • QM data support
      • Vibrational modes, etc.
      • Orbital energies (eigenvalues, eigenvectors)
      • Cube files, grids, etc.
    • Point group and space group symmetry perception
    • Existing PDB, CML, SDF properties and metadata
    • Keywords, author, references, etc.