Skip to content

Wishlist/ideas for rewrite (major refactoring) #137

Description

@kjappelbaum

While it does its job, it became bloated and slow. Much of this boils down to the fact that special cases are handled all across the code.

what should be changed

  1. Porphyrin handling is the main pain point, mostly because we start fragmentations on metals (and not on something like a cycle-based criterion). If we do not do this handling, the net-embedding won't be meaningful, also the building blocks won't be meaningful.
  2. Move some immutable properties to the graph and do not keep track of them through the building blocks. For instance, branching indices are - to our current definition - a property of the graph that is shared between both building blocks. Instead of keeping track of them in both building blocks, we might just leave them on the original MOF
  3. Make it easier to customize the clustering approach -> make it also work for COFs
  4. Openbabel dependency -> Mostly to extract SMILES based on the graph, we should be able to implement this ourselves
  5. Consider switching to graphtool or the rust variant of networkx

what should remain the same

  1. Having the collections of SBU molecules works great

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions