Code Monkey home page Code Monkey logo

kallisto's Introduction

Kallisto

PyPI - Python Version Documentation Maturity Level Tests codecov Language grade: Python status

Table of Contents

  • Full Author List
  • Introduction
  • Installation
  • Testing suite
  • Reference

Full Author List

Introduction

We developed the kallisto program for the efficient and robust calculation of atomic features using molecular geometries either in a xmol or a Turbomole format. Furthermore, several modelling tools are implemented, e.g., to calculate root-mean squared deviations via quaternions (including rotation matrices), sorting of molecular geometries and many more. All features of kallisto are described in detail within our documentation (GitBook repository).

Main dependencies

click 7.1.2 Composable command line interface toolkit
numpy 1.20.1 NumPy is the fundamental package for array computing with Python.
scipy 1.6.0 SciPy: Scientific Library for Python
└── numpy >=1.16.5

For a list of all dependencies have a look at the pyproject.toml file.

Installation from PyPI

To install kallisto via pip use our published PyPI package

pip install kallisto

Installation from Source

Requirements to install kallistofrom sources:

First check that poetry is running correctly (v1.0.10 at the time of writing)

> poetry --version
Poetry version 1.0.10

Create a virtual environment (via pyenv or conda) and activate it. Afterwards, clone the kallisto project from GitHub and install it using poetry

> git clone [email protected]:AstraZeneca/kallisto.git
> cd kallisto
> poetry install

Testing suite

The kallisto project uses nox as an automated unit test suite, which is therefore an additional dependency.

Default nox session

The default session includes: linting (lint), type checks (mypy, pytype), and unit tests (tests).

> nox

When everything runs smoothly through, you are ready to go! After one successful nox run, we can reuse the created virtual environment via the -r flag.

> nox -r

Different unit test sessions are implemented (check the noxfile.py). They can be called separately via the run session -rs flag.

Tests

Run all unit tests that are defined in the /tests directory.

> nox -rs tests

Lint

kallisto uses the flake8 linter (check the .flake8 config file).

> nox -rs lint

Black

kallisto uses the black code formatter.

> nox -rs black

Safety

kallisto checks the security of dependencies via safety.

> nox -rs safety

Mypy

kallisto checks for static types via mypy (check the mypy.ini config file).

> nox -rs mypy

Pytype

kallisto furthermore uses pytype for type checks.

> nox -rs pytype

Coverage

Unit test coverage can be checked as well.

> nox -rs coverage

Reference

Always cite:

Eike Caldeweyher, J. Open Source Softw., 2021, 6, 3050. DOI: 10.21105/joss.03050

@article{Caldeweyher2021,
  doi = {10.21105/joss.03050},
  url = {https://doi.org/10.21105/joss.03050},
  year = {2021},
  volume = {6},
  number = {60},
  pages = {3050},
  author = {Eike Caldeweyher},
  title = {kallisto: A command-line interface to simplify computational modelling and the generation of atomic features},
  journal = {J. Open Source Softw.}
}

kallisto's People

Contributors

f3rmion avatar lynnehansen avatar rmeli avatar

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.