cctbx

Computational Crystallography Toolbox

https://github.com/cctbx/cctbx_project

Science Score: 57.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    49 of 157 committers (31.2%) from academic institutions
  • Institutional organization owner
    Organization cctbx has institutional domain (cci.lbl.gov)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

cctbx cryo-em crystallography phenix

Keywords from Contributors

radiuss build-tools hpsf spack bioinformatics conda package-management ccp4 cif mmcif
Last synced: 6 months ago · JSON representation

Repository

Computational Crystallography Toolbox

Basic Info
Statistics
  • Stars: 260
  • Watchers: 42
  • Forks: 124
  • Open Issues: 151
  • Releases: 61
Topics
cctbx cryo-em crystallography phenix
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Copyright

README.md

Computational Crystallography Toolbox

Build Status Conda Version Nightly conda package tests Conda Platforms DOI

Table of Contents

Introduction

The Computational Crystallography Toolbox (cctbx) is being developed as the open source component of the Phenix project. The goal of the Phenix project is to advance automation of macromolecular structure determination. Phenix depends on the cctbx, but not vice versa. This hierarchical approach enforces a clean design as a reusable library. The cctbx is therefore also useful for small-molecule crystallography and even general scientific applications.

The cctbx also provides some of the key component of the Olex 2 software. Olex 2 is dedicated to the workflow of small molecule crystallographic studies. It features a powerful and flexible refinement engine, olex2.refine, which is developed as part of the cctbx, in the smtbx top-module.

To maximize reusability and, maybe even more importantly, to give individual developers a notion of privacy, the cctbx is organized as a set of smaller modules. This is very much like a village (the cctbx project) with individual houses (modules) for each family (groups of developers, of any size including one).

The cctbx code base is available without restrictions and free of charge to all interested developers, both academic and commercial. The entire community is invited to actively participate in the development of the code base. A sophisticated technical infrastructure that enables community based software development is provided by GitHub. This service is also free of charge and open to the entire world.

The cctbx is designed with an open and flexible architecture to promote extendability and easy incorporation into other software environments. The package is organized as a set of ISO C++ classes with Python bindings. This organization combines the computational efficiency of a strongly typed compiled language with the convenience and flexibility of a dynamically typed scripting language in a strikingly uniform and very maintainable way.

Use of the Python interfaces is highly recommended, but optional. The cctbx can also be used purely as a C++ class library.

Installation

The easiest way to install cctbx is through the Conda package manager. We recommend the Miniforge installers since they provide a minimal environment and default to the conda-forge channel.

There are two packages available, cctbx and cctbx-base. The cctbx package is cctbx-base with some additional GUI packages (e.g. wxpython, pyside2, ipython).

With the conda command available, a new cctbx-base environment named my_env can be created with conda create -n my_env -c conda-forge cctbx-base To choose a specific version of Python, add the python package with the specific version conda create -n my_env -c conda-forge cctbx-base python=3.11 Then the environment can be activated with conda activate my_env

To install cctbx-base into the currently active environment, use conda install -c conda-forge cctbx-base The python package with a specific version can be added to change the version of python that is already installed in the active environment.

There are also regular python packages for cctbx-base and cctbx. They can be installed with pip install cctbx-base

Monomer library

Some programs in cctbx require information about geometric restraints for molecules. This information is available in the chem_data conda package from our releases. Download the chem_data conda package and install in your active environment with conda install <chem_data package> The chem_data package is built from the chem_data and geostd repositories.

Building a development version

  1. Download https://raw.githubusercontent.com/cctbx/cctbxproject/master/libtbx/autobuild/bootstrap.py in the directory where the cctbx and its dependencies shall be installed
  2. Run python bootstrap.py (you may want to run it with the --help option first to discover the available options).
    • For better compatibility with newer operating systems, conda packages can be used for dependencies. Add the --use-conda flag and the command becomes python bootstrap.py --use-conda. This will run the miniconda installer if conda cannot be found. The environment with the dependencies will be located in the conda_base directory. See the description of the --use-conda flag from the --help output for more details.

The installation will take a long while but the script will verbosely describe what it does.

Contributing to the cctbx

For a more detailed description on how to contribute to the cctbx please visit our contribution guide.

Nightly builds and tests

Build Status Conda Version Conda Platforms

A nightly build of the conda packages are available on the cctbx-nightly channel. To use these packages, prepend -c cctbx-nightly as a channel to the commands above. For example, the command to create a new my_env environment would become


conda create -n my_env -c cctbx-nightly -c conda-forge cctbx-base
This will use the cctbx-base package from the cctbx-nightly channel, but pull the remaining dependencies from conda-forge.

There are also nightly builds for the regular python packages. They can be installed with pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple cctbx-base The --extra-index-url flag may be needed if pip is not able to find the other dependencies on TestPyPI.

Nightly builds are only updated if there are additional commits from the previous build.

A subset of tests is run on the current cctbx-base packages from the conda-forge and cctbx-nightly channels every night (10 pm Pacific) to test compatibility with the latest packages from conda-forge. Additional source files for fable and antlr3 are needed for the tests. The nightly test details can be viewed by clicking the "Nightly conda package tests" badge near the beginning of this README.

Owner

  • Name: Computational Crystallography Toolbox
  • Login: cctbx
  • Kind: organization

GitHub Events

Total
  • Create event: 64
  • Release event: 11
  • Issues event: 42
  • Watch event: 34
  • Delete event: 31
  • Issue comment event: 132
  • Push event: 680
  • Pull request review comment event: 7
  • Pull request review event: 7
  • Pull request event: 66
  • Fork event: 7
Last Year
  • Create event: 64
  • Release event: 11
  • Issues event: 42
  • Watch event: 34
  • Delete event: 31
  • Issue comment event: 132
  • Push event: 680
  • Pull request review comment event: 7
  • Pull request review event: 7
  • Pull request event: 66
  • Fork event: 7

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 36,885
  • Total Committers: 157
  • Avg Commits per committer: 234.936
  • Development Distribution Score (DDS): 0.794
Past Year
  • Commits: 1,085
  • Committers: 34
  • Avg Commits per committer: 31.912
  • Development Distribution Score (DDS): 0.829
Top Committers
Name Email Commits
Ralf W. Grosse-Kunstleve r****o@g****m 7,609
Nathaniel Echols n****s@g****m 3,283
Pavel Afonine p****e 2,013
Oleg Sobolev o****v@l****v 1,994
Aaron S. Brewster a****r@l****v 1,817
Billy K. Poon b****n@l****v 1,690
Luc J. Bourhis l****s@m****m 1,656
Richard Gildea r****a@d****k 1,468
Nicholas Sauter n****r@l****v 1,382
Nigel W. Moriarty n****y@l****v 1,346
terwill t****r@n****g 1,344
Pavel p****e@l****v 1,075
Robert Oeffner r****0@c****k 847
Markus Gerstel m****l@d****k 808
Peter Zwart p****t 791
Tom Terwilliger t****r@l****v 663
James Parkhurst j****t@d****k 555
Graeme Winter g****r@g****m 509
Jeffrey Headd j****d 485
dcliebschner d****r@l****v 446
Youval Dar y****r 398
Johan Hattne j****n@h****e 344
Gabor Bunkoczi g****i 276
Nader Morshed m****r@g****m 261
dermen d****n@l****v 244
idyoung i****g@l****v 227
Robert Oeffner r****t@o****t 227
Artem Lyubimov l****v@s****u 219
Artem Lyubimov a****v 202
Monarin Uervirojnangkoorn m****n@g****m 195
and 127 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 110
  • Total pull requests: 277
  • Average time to close issues: 2 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 43
  • Total pull request authors: 30
  • Average comments per issue: 1.65
  • Average comments per pull request: 1.63
  • Merged pull requests: 215
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 38
  • Pull requests: 81
  • Average time to close issues: 10 days
  • Average time to close pull requests: 8 days
  • Issue authors: 18
  • Pull request authors: 12
  • Average comments per issue: 1.05
  • Average comments per pull request: 0.59
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bkpoon (40)
  • picca (9)
  • russell-taylor (6)
  • Baharis (4)
  • kmdalton (3)
  • Trzs (3)
  • dwpaley (3)
  • graeme-winter (2)
  • diogomart (2)
  • luc-j-bourhis (2)
  • rwxayheee (2)
  • Thomas-yunhui (2)
  • aozalevsky (2)
  • fede-pe (1)
  • c3ivodujmovic (1)
Pull Request Authors
  • russell-taylor (47)
  • Baharis (32)
  • dwmoreau (31)
  • dwpaley (30)
  • phyy-nx (24)
  • Trzs (21)
  • dermen (17)
  • nksauter (14)
  • bkpoon (9)
  • dagewa (5)
  • mewall (5)
  • JBlaschke (4)
  • viljarjf (4)
  • yangha7 (4)
  • dand-oss (4)
Top Labels
Issue Labels
Pull Request Labels
xfel (12) libtbx (2) request for comments :speech_balloon: (2) housekeeping (2)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 1,496 last-month
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 5
    (may contain duplicates)
  • Total versions: 60
  • Total maintainers: 1
conda-forge.org: cctbx-base

The Computational Crystallography Toolbox (cctbx) is being developed as the open source component of the Phenix system. The goal of the Phenix project is to advance automation of macromolecular structure determination. Phenix depends on the cctbx, but not vice versa. This hierarchical approach enforces a clean design as a reusable library. The cctbx is therefore also useful for small-molecule crystallography and even general scientific applications.

  • Homepage: https://github.com/cctbx/cctbx_project
  • License: BSD-3-Clause-LBNL AND BSD-3-Clause AND BSL-1.0 AND LGPL-2.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MIT AND LGPL-2.0-or-later WITH WxWindows-exception-3.1
  • Latest release: 2022.10
    published over 3 years ago
  • Versions: 27
  • Dependent Packages: 4
  • Dependent Repositories: 1
Rankings
Dependent packages count: 12.5%
Forks count: 17.5%
Average: 20.4%
Dependent repos count: 24.1%
Stargazers count: 27.4%
Last synced: 6 months ago
pypi.org: cctbx-base

The Computational Crystallography Toolbox (cctbx)

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 1,366 Last month
Rankings
Forks count: 4.4%
Stargazers count: 5.0%
Dependent repos count: 8.9%
Dependent packages count: 10.1%
Average: 22.5%
Downloads: 84.3%
Maintainers (1)
Last synced: 6 months ago
pypi.org: cctbx

The Computational Crystallography Toolbox (cctbx)

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 130 Last month
Rankings
Forks count: 4.4%
Stargazers count: 5.0%
Dependent packages count: 10.1%
Dependent repos count: 21.5%
Average: 22.7%
Downloads: 72.5%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: cctbx

The Computational Crystallography Toolbox (cctbx) is being developed as the open source component of the Phenix system. The goal of the Phenix project is to advance automation of macromolecular structure determination. Phenix depends on the cctbx, but not vice versa. This hierarchical approach enforces a clean design as a reusable library. The cctbx is therefore also useful for small-molecule crystallography and even general scientific applications.

  • Homepage: https://github.com/cctbx/cctbx_project
  • License: BSD-3-Clause-LBNL AND BSD-3-Clause AND BSL-1.0 AND LGPL-2.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MIT AND LGPL-2.0-or-later WITH WxWindows-exception-3.1
  • Latest release: 2022.10
    published over 3 years ago
  • Versions: 27
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Forks count: 16.0%
Stargazers count: 25.7%
Average: 26.1%
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Last synced: 6 months ago

Dependencies

.github/workflows/mirror.yml actions
  • Anthchirp/action-ssh-key b4a94d05b860c19f609854947327a4882269b7c1 composite
  • Anthchirp/action-wait-for-check 4699210ccc66e2a13260803fadbb77085421b891 composite
  • actions/checkout v2 composite
dox/rst/data/Dockerfile docker
  • fedora 30 build