semvec/pypi-packages huggingface dataset:
protein-topmodel 1.0.1
validate molecular structure models
License: MIT
Requires Python: >=3.8

# TopModel

A python script to quickly inspect and highlight issues in structure models.

![Tests](https://github.com/liedllab/TopModel/actions/workflows/tests.yml/badge.svg)

## Installation

```bash
pip install git+https://github.com/liedllab/topmodel.git
```

## Test Installation

```bash
topmodel --help
```

# Command-Line Interface (CLI)
```bash
topmodel path/to/file*.pdb
```

TopModel is a command line tool that checks the chiralities, the amide bonds and overall VDW clashes
in a structure model. Optionally, the structure can be opened in PyMOL to visualize 
the issues found. For this PyMOL needs to be in PATH.

## Chirality

TopModel can assign `L` and `D` to aminoacids. In the command-line interface (CLI) only the `D`
aminoacids are shown.
The chirality is computed by computing a normal vector $\vec{n}$ to the plane defined by the triangle 
of the three highest priority atoms $A$ around the chiral center where the suffix denotes the
priority. 

$$\vec{n} =  \overrightarrow{A_3A_1} \times \overrightarrow{A_3A_2}$$

The direction of the normal vector is determined by the orientation of the side chains. By 
calculating the dot product of the normal vector and a vector from the chiral center to the plane the 
relative orientation of the three atoms around the chiral center, and thus the chirality, can be 
determined from the sign of the result.

$$
chirality = \vec{n} \cdot \overrightarrow{A_3A_{center}} = 
        \begin{cases} 
        \mathbf{D}\, \text{if } > 0 \\
        \mathbf{L}\, \text{if } < 0 
        \end{cases}
$$

## Amide bonds

TopModel can assign `CIS` and `TRANS` to the amide bonds depending on the dihedral angle defined by
$C_{\alpha}CNC_\alpha$.
Amide bonds that could not be assigned to either `CIS` or `TRANS` are labeled as `NON_PLANAR`.

Cis amide bonds to prolines are labelled separately as they occur more frequently.

## Clashes

TopModel detects Van der Waals clashes by calculating the distance between all pair of atoms that
are within 5 Å of each other. A clash is defined by:
$$d_{AB} < r_A + r_B - 0.5Å$$

# As a package

TopModel can be imported as a package. The package contains the small modules `chirality`,
`amide_bond` and `clashes` that provide functions to calculate the respective property.

```python
import topmodel # or
from topmodel.check import chirality, amide_bond, clashes
```

# Dependencies

- biopython
- scipy
- mendeleev
- Click
- colorama
- PyMOL (to open the structure in PyMOL)
esoc-events 0.0.3
Querying events comming from ESOC sources
License: MIT
Requires Python: <4.0,>=3.9

# esoc_events

[![PyPI](https://img.shields.io/pypi/v/esoc_events?style=flat-square)](https://pypi.python.org/pypi/esoc_events/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/esoc_events?style=flat-square)](https://pypi.python.org/pypi/esoc_events/)
[![PyPI - License](https://img.shields.io/pypi/l/esoc_events?style=flat-square)](https://pypi.python.org/pypi/esoc_events/)
[![Coookiecutter - Wolt](https://img.shields.io/badge/cookiecutter-Wolt-00c2e8?style=flat-square&logo=cookiecutter&logoColor=D4AA00&link=https://github.com/woltapp/wolt-python-package-cookiecutter)](https://github.com/woltapp/wolt-python-package-cookiecutter)
![Test workflow](https://github.com/r-andres/esoc_events/actions/workflows/test.yml/badge.svg)

---

**Documentation**: [https://r-andres.github.io/esoc_events](https://r-andres.github.io/esoc_events)

**Source Code**: [https://github.com/r-andres/esoc_events](https://github.com/r-andres/esoc_events)

**PyPI**: [https://pypi.org/project/esoc_events/](https://pypi.org/project/esoc_events/)

---

Querying events comming from ESOC sources

## Installation

```sh
pip install esoc_events
```

## Development

* Clone this repository
* Requirements:
  * [Poetry](https://python-poetry.org/)
  * Python 3.7+
* Create a virtual environment and install the dependencies

```sh
poetry install
```

* Activate the virtual environment

```sh
poetry shell
```

### Testing

```sh
pytest
```

### Documentation

The documentation is automatically generated from the content of the [docs directory](./docs) and from the docstrings
 of the public signatures of the source code. The documentation is updated and published as a [Github project page
 ](https://pages.github.com/) automatically as part each release.

### Releasing

Trigger the [Draft release workflow](https://github.com/r-andres/esoc_events/actions/workflows/draft_release.yml)
(press _Run workflow_). This will update the changelog & version and create a GitHub release which is in _Draft_ state.

Find the draft release from the
[GitHub releases](https://github.com/r-andres/esoc_events/releases) and publish it. When
 a release is published, it'll trigger [release](https://github.com/r-andres/esoc_events/blob/master/.github/workflows/release.yml) workflow which creates PyPI
 release and deploys updated documentation.

### Pre-commit

Pre-commit hooks run all the auto-formatters (e.g. `black`, `isort`), linters (e.g. `mypy`, `flake8`), and other quality
 checks to make sure the changeset is in good shape before a commit/push happens.

You can install the hooks with (runs for each commit):

```sh
pre-commit install
```

Or if you want them to run only for each push:

```sh
pre-commit install -t pre-push
```

Or if you want e.g. want to run all checks manually for all files:

```sh
pre-commit run --all-files
```

---

This project was generated using the [wolt-python-package-cookiecutter](https://github.com/woltapp/wolt-python-package-cookiecutter) template.