Git Product home page Git Product logo

konnektor's Introduction

Konnektor`s fancy logo

Konnektor: Tools for Networks in your FE Calculations

Logo build coverage Documentation Status

Pip Install

Konnektor is a package supporting you in planning your free calculations. It contains multiple algorithms and tools for network planning, that make setting up the calculation plans much easier. As an example imagen you are given a set of drug candidates that shall be ranked with relative binding free energies. In theory you could calculate all the possible network transformations, in order to get your ligand ranking (we call this a Maximal Network). However this leads to an explosion in time and compute cost, therefore we need more efficient ways on how to caluclate a drug candidate ranking. From a thermodynamic perspective not all transformations are actually required to retrieve a ranking. In fact you only need one conection per small molecules to the others in order to get the ranking, like for example in Star Networks or Minimal Spanning Tree (MST) Networks. However we found the very efficient networks to be sensitive to transformation failures, this can be solved with network building algorithms, that are slightly more redundant.

Ontop of the described ligand network planners, Konnektor gives access to tools, that allow for example to concatenate networks or delete transformations of a network. Analysis of networks, like calculating graph scores, getting the connectivities of network nodes or calculating the network robustness are available too. Last we want to bring to your attention our Network visualization tools and the provided interactive network visualization widget for IPython like in Jupyter-Lab/Notebooks.

Try our interactive demo: Open In Colab

๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท

WARNING: Konnektor is under development and is in its beta phase!

This translates to the core features are implemented and we hope to only introduce minor changes to the repository form here, i.e. fixing bugs.

๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท๐Ÿ‘ท

Content

Implemented Network Layouts

Several Network layout generating algorithms are implemented in Konnektor, with different advantages and disadvantages. From an algorithmic perspective most of the algorithms are actually a reduction method of the Maximal Network. To speed-up the Maximal Network Algorithm we implemented an parallelization scheme to it. Below you can find some of our layouts:

image

Tools for handling Networks

Konnektor implements tools, that allow for example to merge (if a node is shared in the networks) or concatenate (if no node is shared) networks, append single molecules (nodes) to a network or delete transformations/molecules from a network.

image

Enable More Complex Higher Order Networks

Another goal of Konnektor is to go beyond the standard network layout algorihtms and allow easy implementation of more complex network algorithms. This is achieved by combining the Tools and Network Generator Algorithms, to build up to more advanced workflows.

image

Code Example

# Here we generate some input data.
from konnektor.data import get_benzene_ligands

compounds = list(filter(lambda x: not x.name in ["lig_2", "lig_3", "lig_4", "lig_7"],
                        get_benzene_ligands()))

# Pick your Favourite Network layout with favourite AtomMapper and Scorer
from openfe.setup import KartografAtomMapper, lomap_scorers
from konnektor.network_planners import CyclicNetworkGenerator

networker = CyclicNetworkGenerator(mapper=KartografAtomMapper(),
                                   scorer=lomap_scorers.default_lomap_score)

# Generate Network
network = networker.generate_ligand_network(compounds)
network.name = "Cyclic Network"

# Visualize the generated network
from konnektor.visualization import draw_ligand_network
fig = draw_ligand_network(network=network, title=network.name)

fig.show()

example fig

Installation

Latest release

Konnektor can be installed via the package following package managers:

pip install konnnektor

Developement version

The developing setup of Konnektor works like this:

git clone https://github.com/OpenFreeEnergy/konnektor.git

cd konnektor
mamba env create -f environment.yml

mamba activate konnektor
pip install -e .

License

This library is made available under the MIT open source license.

Authors

The OpenFE development team.

Acknowledgments

Thanks to Enrico Ruijsenaars, Jenke Scheen and Josh Horton for great discussions!

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.