konnektor

Algorithms for various Network Layouts and Tooling for planning FE Calculations

https://github.com/openfreeenergy/konnektor

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: acs.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary

Keywords

free-energy-calculations network-planning openfe python
Last synced: 6 months ago · JSON representation ·

Repository

Algorithms for various Network Layouts and Tooling for planning FE Calculations

Basic Info
Statistics
  • Stars: 19
  • Watchers: 1
  • Forks: 5
  • Open Issues: 30
  • Releases: 2
Topics
free-energy-calculations network-planning openfe python
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

Konnektor`s fancy logo

Konnektor: Tools for Networks in your FE Calculations

Logo build coverage Documentation Status pre-commit.ci 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.

Check out our article on Konnektor in the Journal of Chemical Information and Modeling: 𝐊𝐨𝐧𝐧𝐞𝐤𝐭𝐨𝐫: 𝐀 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 𝐟𝐨𝐫 𝐔𝐬𝐢𝐧𝐠 𝐆𝐫𝐚𝐩𝐡 𝐓𝐡𝐞𝐨𝐫𝐲 𝐭𝐨 𝐏𝐥𝐚𝐧 𝐍𝐞𝐭𝐰𝐨𝐫𝐤𝐬 𝐟𝐨𝐫 𝐅𝐫𝐞𝐞 𝐄𝐧𝐞𝐫𝐠𝐲 𝐂𝐚𝐥𝐜𝐮𝐥𝐚𝐭𝐢𝐨𝐧𝐬 - Benjamin Ries*, Richard J. Gowers, Hannah M. Baumann, David W. H. Swenson, Michael M. Henry, James R. B. Eastwood, Irfan Alibay, and David Mobley.

You can find our pre-print on ChemRxiv.

Try our interactive demo: Open In Colab

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

```python3

Here we generate some input data.

from konnektor.data import getbenzeneligands

compounds = list(filter(lambda x: not x.name in ["lig2", "lig3", "lig4", "lig7"], getbenzeneligands()))

Pick your Favourite Network layout with favourite AtomMapper and Scorer

from openfe.setup import KartografAtomMapper, lomapscorers from konnektor.networkplanners import CyclicNetworkGenerator

networker = CyclicNetworkGenerator(mappers=KartografAtomMapper(), scorer=lomapscorers.defaultlomap_score)

Generate Network

network = networker.generateligandnetwork(compounds) network.name = "Cyclic Network"

Visualize the generated network

from konnektor.visualization import drawligandnetwork fig = drawligandnetwork(network=network, title=network.name)

fig.show() ``` example fig

Installation

Latest release

Konnektor can be installed from conda-forge:

shell mamba install -c conda-forge konnektor

Developement version

The developing setup of Konnektor works like this:

```shell 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!

Owner

  • Name: Open Free Energy
  • Login: OpenFreeEnergy
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Ries"
  given-names: "Benjamin"
  orcid: "https://orcid.org/0000-0002-0945-8304"
- family-names: "Gowers"
  given-names: "Richard J."
  orcid: "https://orcid.org/0000-0002-3241-1846"
- family-names: "Baumann"
  given-names: "Hannah M."
  orcid: "https://orcid.org/0000-0002-1736-7744"
- family-names: "Swenson"
  given-names: "David W.H."
  orcid: "https://orcid.org/0000-0001-9922-7923"
- family-names: "Alibay"
  given-names: "Irfan"
  orcid: "https://orcid.org/0000-0001-5787-9130"
- family-names: "Henry"
  given-names: "Michael M."
  orcid: "https://orcid.org/0000-0002-3870-9993"
- family-names: "Eastwood"
  given-names: "James R. B."
  orcid: "https://orcid.org/0000-0003-3895-5227"
title: "Konnektor: A Tool for Planning Free Energy Networks"
version: 1.0
date-released: -
url: "https://openfree.energy/"
repository-code: "https://github.com/OpenFreeEnergy/konnektor"
doi: -

GitHub Events

Total
  • Issues event: 49
  • Watch event: 9
  • Delete event: 40
  • Issue comment event: 110
  • Push event: 212
  • Pull request review comment event: 95
  • Pull request review event: 107
  • Pull request event: 77
  • Fork event: 2
  • Create event: 39
Last Year
  • Issues event: 49
  • Watch event: 9
  • Delete event: 40
  • Issue comment event: 110
  • Push event: 212
  • Pull request review comment event: 95
  • Pull request review event: 107
  • Pull request event: 77
  • Fork event: 2
  • Create event: 39

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 79
  • Total pull requests: 62
  • Average time to close issues: 3 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 6
  • Total pull request authors: 8
  • Average comments per issue: 0.42
  • Average comments per pull request: 1.52
  • Merged pull requests: 40
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 34
  • Pull requests: 46
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 16 days
  • Issue authors: 5
  • Pull request authors: 6
  • Average comments per issue: 0.59
  • Average comments per pull request: 1.39
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • RiesBen (42)
  • atravitz (24)
  • jameseastwood (6)
  • IAlibay (4)
  • dwhswenson (1)
  • mikemhenry (1)
Pull Request Authors
  • atravitz (31)
  • RiesBen (29)
  • IAlibay (9)
  • richardjgowers (7)
  • mikemhenry (7)
  • pre-commit-ci[bot] (4)
  • Julicancode (2)
  • LindeSchoenmaker (1)
Top Labels
Issue Labels
Konnektor (30) enhancement (18) refactor (6) documentation (4) openfe (3) help wanted (1) priority:medium (1)
Pull Request Labels
Konnektor (6) documentation (5) enhancement (5) bug (1) refactor (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 20 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 3
pypi.org: konnektor

Konnektor is a package for calculating networks.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20 Last month
Rankings
Dependent packages count: 6.6%
Average: 18.6%
Dependent repos count: 30.6%
Maintainers (3)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yaml actions
  • actions/checkout v4 composite
  • codecov/codecov-action v3 composite
  • mamba-org/setup-micromamba v1 composite
pyproject.toml pypi
  • gufe *
  • networkx *
  • numpy *
  • rdkit *
  • scikit-learn *
  • scikit-mol *
  • scipy *
docs/requirements.txt pypi
  • gufe *
  • myst-parser *
environment.yml pypi
  • dill *
  • scikit-mol *
examples/environment.yaml pypi
  • scikit-mol *