Skip to content

Commit

Permalink
Add Alex quote
Browse files Browse the repository at this point in the history
  • Loading branch information
bobleesj committed Jul 10, 2024
1 parent 62bd03e commit 8828e27
Show file tree
Hide file tree
Showing 24 changed files with 483 additions and 140 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ __pycache__/
*$py.class
.DS_Store


# Test file
test.ipynb

# C extensions
*.so

Expand Down
2 changes: 0 additions & 2 deletions .prettierignore

This file was deleted.

File renamed without changes.
File renamed without changes.
35 changes: 25 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,28 +29,44 @@ functions for handling large datasets, on the order of tens of thousands, of
In high-throughput analysis using `.cif` files, the research project has
identified the folowing needs:

- **Format files at once:** `.cif` files parsed from databases often contain
- **Preprocess files at once:** `.cif` files parsed from databases often contain
ill-formatted files. We need a tool to standardize, preprocess, and filter out
bad files. I also need to copy, move, and sort `.cif` files based on specific
bad files. We also need to copy, move, and sort `.cif` files based on specific
attributes.

- **Visualize coordination geometry:** We are interested in determining the
coordination geometry and the best site in the supercell for analysis in a
high-throughput manner. We need to identify the best site for each site label.
- **Visualize distribution of files:** We want to easily identify and categorize
a distribution of underlying `.cif` files based on supercell size, tags,
coordination numbers, elements, etc.

## Quotes

Here is a quote illustrating how `cifkit` addresses one of the challenges mentioned above.

> "I am building an X-Ray diffraction analysis (XRD) pattern visualization
> script for my lab using `pymatgen`. I feel like `cifkit` integrated really
> well into my existing stable of libraries, while surpassing some alternatives
> in preprocessing and parsing. For example, it was often unclear at what stage
> an error occurred—whether during pre-processing with `CifParser`, or XRD plot
> generation with `diffraction.core` in `pymatgen`. The pre-processing logic in
> `cifkit` was communicated clearly, both in documentation and in actual
> outputs, allowing me to catch errors in my data before it was used in my
> visualizations. I now use `cifkit` by default for processing CIFs before they
> pass through the rest of my pipeline." - Alex Vtorov
## Overview

Designed for individuals with minimal programming experience, `cifkit` provides
two primary objects: `Cif` and `CifEnsemble`.

### Cif

**`Cif`** is initialized with a `.cif` file path. It parses the .cif file,
preprocesses ill-formatted files, generates supercells, and computes nearest
neighbors. It also determines coordination numbers using four different methods
and generates polyhedrons for each site.
**`Cif`** is initialized with a `.cif` file path. It parses the `.cif` file,
generates supercells, and computes nearest neighbors. It also determines
coordination numbers using four different methods and generates polyhedrons for
each site.

```python
from cifkit import Cif
Expand Down Expand Up @@ -179,11 +195,8 @@ Here is how you can contribute to the `cifkit` project if you found it helpful:

## Contributors

`cifkit` is made possible with contributions and support from the following
individuals:

`cifkit` has been greatly enhanced thanks to the contributions from a diverse
group of developers and researchers. Here are a few notable contributors:
group of researchers:

- **Anton Oliynyk**: provided original ideation with `.cif` files
- **Alex Vtorov**: recommended tool for polyhedron visualization
Expand All @@ -196,3 +209,5 @@ group of developers and researchers. Here are a few notable contributors:

We welcome all forms of contributions from the community. Your ideas and
improvements are valued and appreciated.

## Testimonial
50 changes: 45 additions & 5 deletions docs/notebooks/00_Intro.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: cifkit in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (1.0.2)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install cifkit"
]
Expand All @@ -27,9 +36,40 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: cifkit in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (1.0.2)\n",
"Requirement already satisfied: pyvista in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (0.43.10)\n",
"Requirement already satisfied: gemmi in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (0.6.6)\n",
"Requirement already satisfied: matplotlib>=3.0.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (3.9.0)\n",
"Requirement already satisfied: numpy>=1.21.0 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (1.26.4)\n",
"Requirement already satisfied: pillow in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (10.3.0)\n",
"Requirement already satisfied: pooch in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (1.8.2)\n",
"Requirement already satisfied: scooby>=0.5.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (0.10.0)\n",
"Requirement already satisfied: vtk in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pyvista) (9.3.1)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (1.2.1)\n",
"Requirement already satisfied: cycler>=0.10 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (0.12.1)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (4.53.0)\n",
"Requirement already satisfied: kiwisolver>=1.3.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (1.4.5)\n",
"Requirement already satisfied: packaging>=20.0 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (24.1)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (3.1.2)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from matplotlib>=3.0.1->pyvista) (2.9.0.post0)\n",
"Requirement already satisfied: platformdirs>=2.5.0 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pooch->pyvista) (4.2.2)\n",
"Requirement already satisfied: requests>=2.19.0 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from pooch->pyvista) (2.32.3)\n",
"Requirement already satisfied: six>=1.5 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib>=3.0.1->pyvista) (1.16.0)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from requests>=2.19.0->pooch->pyvista) (3.3.2)\n",
"Requirement already satisfied: idna<4,>=2.5 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from requests>=2.19.0->pooch->pyvista) (3.7)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from requests>=2.19.0->pooch->pyvista) (2.2.2)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /Users/imac/miniconda3/envs/cifkit-test/lib/python3.12/site-packages (from requests>=2.19.0->pooch->pyvista) (2024.6.2)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
" pip install cifkit pyvista gemmi"
]
Expand Down Expand Up @@ -68,7 +108,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.1.-1"
"version": "3.12.3"
}
},
"nbformat": 4,
Expand Down
Loading

0 comments on commit 8828e27

Please sign in to comment.