kartograf

This package contains tools for setting up hybrid-topology FE calculations

https://github.com/openfreeenergy/kartograf

Science Score: 77.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 7 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary

Keywords

atom-mapping free-energy-calculations hybrid-topology openfe python
Last synced: 6 months ago · JSON representation ·

Repository

This package contains tools for setting up hybrid-topology FE calculations

Basic Info
Statistics
  • Stars: 29
  • Watchers: 4
  • Forks: 5
  • Open Issues: 23
  • Releases: 5
Topics
atom-mapping free-energy-calculations hybrid-topology openfe python
Created about 3 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation

README.md

Kartografs fancy logo

Kartograf: A Geometry-Based Atom Mapper

Logo build coverage Documentation Status DOI Conda Install

Kartograf is a package for atom mappings focussing on 3D geometries. This package can be for example be used to generate hybrid topology systems, where an atom mapping is required to determine the core region of the approach. But of course there exist also other use cases for this package. The atom mapper takes two set of coordinates of molecules as input. Optionally those set of coordinates can be aligned onto each other, checkout the atom_aligner module functions of Kartograf that offer a shape alignment implementation and a MCS-skeleton alignment. The atom_mapper can be used to generate the 3D geometry focused atom mapping, the algorithm is described in the related publication of Kartograf (see reference). Additionally, rule based filter functions can be provided to demap atoms, that do not fulfill the desired criteria, see filters. Several mapping scoring metrics are provided, that evaluate geometric properties of your mapping, from atom_mapping_scorer, which might be useful for checking quality of your mappings. Finally, there is a visualization function display_mappings_3d that can be used to check out the mappings with a jupyter notebook widget.

Checkout our article on Kartograf in the Journal of Chemical Theory and Computation: Kartograf: A Geometrically Accurate Atom Mapper for Hybrid-Topology Relative Free Energy Calculations - Benjamin Ries*, Irfan Alibay, David W. H. Swenson, Hannah M. Baumann, Michael M. Henry, James R. B. Eastwood, and Richard J. Gowers.

You can find a preprint on ChemRxiv.

Try our interactive demo: Open In Colab

Usage

```python3 from rdkit import Chem from kartograf.atomaligner import alignmolshape from kartograf.atommapping_scorer import MappingRMSDScorer from kartograf import KartografAtomMapper, SmallMoleculeComponent

Preprocessing from Smiles - Here you can add your Input!

Generate Data: START

smiles = ["c1ccccc1", "c1ccccc1(CO)"] rdmols = [Chem.MolFromSmiles(s) for s in smiles] rdmols = [Chem.AddHs(m, addCoords=True) for m in rdmols] [Chem.rdDistGeom.EmbedMolecule(m, useRandomCoords=False, randomSeed = 0) for m in rdmols]

Generate Data: END

Build Small Molecule Components

molA, molB = [SmallMoleculeComponent.from_rdkit(m) for m in rdmols]

Align the mols first - this might not needed, depends on input.

amolB = alignmolshape(molB, refmol=molA)

Build Kartograf Atom Mapper

mapper = KartografAtomMapper(atommaphydrogens=True)

Get Mapping

kartografmapping = next(mapper.suggestmappings(molA, a_molB))

Score Mapping

rmsdscorer = MappingRMSDScorer() score = rmsdscorer(mapping=kartograf_mapping) print(f"RMSD Score: {score}")

kartograf_mapping ```

Installation

Latest release

Kartograf can be installed via the package following package managers:

conda (conda-forge)

shell conda install -c conda-forge kartograf

Kartograf can be used via the OpenFE environment like:

python from openfe.setup.atom_mapping import kartograf

Development version

The developing setup of Kartograf works like this:

```shell git clone https://github.com/OpenFreeEnergy/kartograf.git

cd kartograf mamba env create -f environment.yml

mamba activate kartograf pip install -e .

```

License

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

Authors

The OpenFE development team.

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: "Alibay"
  given-names: "Irfan"
  orcid: "https://orcid.org/0000-0001-5787-9130"
- family-names: "Swenson"
  given-names: "David W.H."
  orcid: "https://orcid.org/0000-0001-9922-7923"
- family-names: "Baumann"
  given-names: "Hannah M."
  orcid: "https://orcid.org/0000-0002-1736-7744"
- 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"
- family-names: "Gowers"
  given-names: "Richard J."
  orcid: "https://orcid.org/0000-0002-3241-1846"
title: "Kartograf: A Geometrically Accurate Atom Mapper for Hybrid-Topology Relative Free Energy Calculations"
version: 1.0
date-released: 2024-02-08
url: "https://openfree.energy/"
repository-code: "https://github.com/OpenFreeEnergy/kartograf"
doi: 10.1021/acs.jctc.3c01206

GitHub Events

Total
  • Create event: 20
  • Release event: 3
  • Issues event: 47
  • Watch event: 6
  • Delete event: 18
  • Issue comment event: 50
  • Push event: 72
  • Pull request review event: 90
  • Pull request review comment event: 78
  • Pull request event: 37
  • Fork event: 3
Last Year
  • Create event: 20
  • Release event: 3
  • Issues event: 47
  • Watch event: 6
  • Delete event: 18
  • Issue comment event: 50
  • Push event: 72
  • Pull request review event: 90
  • Pull request review comment event: 78
  • Pull request event: 37
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 291
  • Total Committers: 8
  • Avg Commits per committer: 36.375
  • Development Distribution Score (DDS): 0.323
Past Year
  • Commits: 59
  • Committers: 4
  • Avg Commits per committer: 14.75
  • Development Distribution Score (DDS): 0.542
Top Committers
Name Email Commits
Benjamin Ries b****s@o****m 197
richard gowers r****s@g****m 29
Josh Horton J****n@n****k 27
Alyssa Travitz a****z@o****o 17
Irfan Alibay I****y 10
Mike Henry 1****y 4
bschroed m****1 4
Josh Mitchell y****i@g****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 53
  • Total pull requests: 52
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 16 days
  • Total issue authors: 13
  • Total pull request authors: 9
  • Average comments per issue: 0.94
  • Average comments per pull request: 1.67
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 32
  • Pull requests: 27
  • Average time to close issues: 11 days
  • Average time to close pull requests: 3 days
  • Issue authors: 6
  • Pull request authors: 5
  • Average comments per issue: 0.38
  • Average comments per pull request: 1.44
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jthorton (12)
  • IAlibay (11)
  • RiesBen (11)
  • mikemhenry (7)
  • jameseastwood (4)
  • ijpulidos (2)
  • hannahbaumann (2)
  • David-Araripe (1)
  • atravitz (1)
  • Nengeldir (1)
  • richardjgowers (1)
  • JenkeScheen (1)
  • okbckim (1)
Pull Request Authors
  • jthorton (19)
  • RiesBen (18)
  • atravitz (13)
  • IAlibay (9)
  • richardjgowers (6)
  • mikemhenry (6)
  • computerscienceiscool (2)
  • sg-s (1)
Top Labels
Issue Labels
documentation (8) enhancement (6) bug (6) help wanted (1) priority:medium (1) refactor (1) openfe (1) priority:high (1) question (1)
Pull Request Labels
enhancement (3) documentation (2) bug (2) refactor (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 76 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 8
  • Total maintainers: 4
pypi.org: kartograf

Kartograf is a package for mapping geometrically atoms of two molecules. (like you need it with hybrid topology)

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 76 Last month
Rankings
Dependent packages count: 6.6%
Downloads: 14.1%
Average: 21.5%
Stargazers count: 25.5%
Forks count: 30.5%
Dependent repos count: 30.6%
Maintainers (4)
Last synced: 6 months ago