Coder Social home page Coder Social logo

openfreeenergy / konnektor Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 2.0 75.69 MB

Algorithms for various Network Layouts and Tooling for planning FE Calculations

Home Page: https://konnektor.readthedocs.io/

License: MIT License

Python 15.29% Jupyter Notebook 84.71%
free-energy-calculations network-planning openfe python

konnektor's People

Contributors

richardjgowers avatar riesben avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

konnektor's Issues

Algorithms: Implement Konnektor Visualization

Collecting Visualization ideas here:

  • Build Network graph visualization
  • make bottlenecks visible
  • interactive visualization (checkout swensons solution fo this)
  • large number of nodes?
  • [ ]

Konnektor Integration to OpenFE

Todo:

  • make Konnektor importable into Openfe
  • replace old ligand network planners.
  • make Konnektor Options accessible from CLI
  • test equality

Are Network generators factories?

Usually I expect a Generator to have __iter__ defined, but the pattern used seems a lot closer to a factory pattern.

Would it make sense to not call it "Generator" to avoid Python confusion?

Build User Stories

Build Userstories, that help understanding how the Konnektor functionality can be used to solve problems.

ToDo:

  • Build Design Usersheet
  • Add to the docs.

Network planner: user-specified edges

Something like

network = generate_explicit_network([mapper1, mapper2], [(ligand1, ligand2), (ligand2, ligand3), ...])

(Based on meeting with Joe Bluck, this might be useful, especially when benchmarking against other tools.)

Epic: Refactor repository

Here i need help from the team, giving feeback on repo structures and names

Todos:

  • Refactor algorithms folder (remove them and merge the files into the folder structure)
  • is the Graph generator and bi-partite graph concatentor seperation needed?

NNodeEdges edge criterion

This is an idea for a feature.
one could make the redundancy creation in the the N-NodeEdges Network dependent on a scorer threshold.
so if score is 1, no redundancy needed, if score <0.5 add redundancy due to likely edge failure.

Make code black

Imrpove the readability of the repository by refactoring the codebase with black.

Algorithms: Implement Network Tools

General ideas for tools:
Image

Tools (Helper Functions):

  • concatenate(networks: Iterable[LigandNetwork], _concatenator:NetworkConcatator) ->LigandNetwork
  • merge(networks: Iterable[LigandNetwork]) ->LigandNetwork
  • appendCompound(network: LigandNetwork, compound:Iterable[Compound], _concatenator:NetworkConcatator)-> LigandNetwork
  • removeCompound(network: LigandNetwork, compound:Iterable[Compound], _concatenator:NetworkConcatator)-> LigandNetwork

Concatenator Implementations:

  • MST Concatenator(networks: Iterable[LigandNetwork], _concatenator:NetworkConcatator) ->LigandNetwork
  • Cyclic Concatenator(networks: Iterable[LigandNetwork], _concatenator:NetworkConcatator) ->LigandNetwork

Algorithms: Implement Konnektor Analysis

here we should define some helping functions for the analysis of networks.

generall function should look like:
def ana(Network) -> any

Functions:

  • isConnected->bool
  • edgeRedundancy->float
  • nodeConnectivity->dict{int, float}
  • cyclesForNode(network, cycleSize)->dict{int, float} - Difficult!
  • getGraphScore(network, scorer)->float
  • getGraphRobustness(network)->float

new ideas, please add

Algorithms: Implement Graph Generators

Network Graph Generators are generating networks from compounds, using mappers and scorers.

general method signature of the main functionality:

def generate_ligand_network(self, ligands: Iterable[SmallMoleculeComponent]) ->LigandNetwork

Implement/transfer the following Graph Generator Algorithms:

  • MST
  • Redundant MST
  • Star / Radial Map
  • Starry Sky
  • Cyclic Graph
  • Maximal Graph

Image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.