Skip to main content

A package for working with Wyckoff positions in crystallography

Project description

Wyckoff

A Python package for working with Wyckoff positions in crystallography.

Installation

pip install wyckoff

OR

uv add wyckoff

Usage

Simple Example:

from wyckoff import WyckoffDatabase

wyckoff = WyckoffDatabase()
data = wyckoff.data

for items in data["2"]:
    print(items)

print("Spacegroup 3 (which is 3-b varient):")
print(data["3"][0])

for more complex example checkout the example file

Info

IMPORTANT: If variations are available for a spacegroup, and functions/dictionary are called/indexed without specifying the variation then first available variation will be returned.

Following variation types are included in the database:

  1. Unique axis settings: Suffixes like "-b" and "-c" typically indicate which crystallographic axis is chosen as the unique axis, especially in monoclinic and orthorhombic systems. For example:
    • "3-b" means space group 3 with b-axis as the unique axis
    • "3-c" means space group 3 with c-axis as the unique axis

Example:

positions = wyckoff.wyckoff_positions("3-b")  # Space group 3 with b-axis as the unique axis
print(positions)
  1. Origin choice: Suffixes like "-1" and "-2" usually indicate different origin choices for the same space group:
    • "48-1" is space group 48 with origin choice 1
    • "48-2" is space group 48 with origin choice 2

Example:

positions = wyckoff.wyckoff_positions("48-1")  # Space group 48 with origin choice 1
print(positions)
  1. Cell choices: Some suffixes may represent different conventional cell choices (hexagonal vs. rhombohedral settings in trigonal groups, for example).

Example:

positions = wyckoff.wyckoff_positions("148-hexagonal")  # Space group 148 with hexagonal cell
print(positions)

Data Source

This implementation is inspierd by a utility fuction in doped project. That version used a non-standard datafile for parsing the Wyckoff positions from bilbao crystallographic server. This implementation uses a standard JSON file for parsing the Wyckoff positions, add additional checks and validations to ensure data integrity, remove a bug that produces duplicate Wyckoff positions and custom wyckoff dataclass, etc,.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wyckoff-0.3.0.tar.gz (41.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wyckoff-0.3.0-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

Details for the file wyckoff-0.3.0.tar.gz.

File metadata

  • Download URL: wyckoff-0.3.0.tar.gz
  • Upload date:
  • Size: 41.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.1

File hashes

Hashes for wyckoff-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b2c856aa23bfaaf17ae7604319b8a1aad80633f5123b7c4bce625b9987f748fd
MD5 a7731bfdd41a0eb3e2f04da63a0d5047
BLAKE2b-256 fc89112ce4d32cfc7b0d17258495cfab66822807112959633c93fc470eb69031

See more details on using hashes here.

File details

Details for the file wyckoff-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: wyckoff-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 42.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.1

File hashes

Hashes for wyckoff-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7dc7b7bea6b0e3dd3ba866607ca08e432600b9424ed63a9191f5d117c5d7d787
MD5 ff793a6a35c0aa8b5647e2d865de94b9
BLAKE2b-256 7ab5b5beb2c766dfe33cff64f01fc6924906760893698f33ac07b24bcaca65ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page