A tool for calculating distortion parameters in coordination complexes.

Overview

Python version PyPI-Server Python Wheel Code size Repo size License

Github Download All releases Github Download Latest version Platform

OctaDist

Octahedral distortion calculator: A tool for calculating distortion parameters in coordination complexes. https://octadist.github.io/

molecule

Register for OctaDist

To get notified when we release new version of OctaDist, please register at https://cutt.ly/regis-octadist.

OctaDist Forum

The users can post questions in our Google Groups: OctaDist Forum

Standard abilities

OctaDist is computer software for inorganic chemistry and crystallography program. OctaDist can be used for studying the structural distortion in coordination complexes. With the abilities of OctaDist, you can:

  • analyze the structure and conformation of coordination complexes.
  • compute the octahedral distortion parameters.
  • explore tilting distortion in perovskite and metal-organic framework.
  • display 3D molecule for graphical analysis.
  • implement OctaDist's module into your or other program.
  • access the program core directly via an interactive scripting language.

Development and Release

OctaDist is written entirely in Python 3 binding to Tkinter GUI toolkit. It is cross-platform program which can work on multiple operating systems. The stable version and development build of OctaDist are released at here. A standalone executable for graphical user interface (GUI) and source code for command line interface (CLI) are available for as follows:

Platform Description Status
Windows windows Travis-CI Test
Linux latest-release Travis-CI Test
macOS latest-release Travis-CI Test
PyPI library PyPI-Server Travis-CI Test
Anaconda cloud Conda-Server Travis-CI Test
Nightly build Development build Travis-CI Test

Branch:

  1. master
  2. nightly-build

Git Clone

git clone https://github.com/OctaDist/OctaDist.git
git checkout nightly-build
git pull origin nightly-build

Documents

User manual : https://octadist.github.io/manual.html.

Reference manual :

Version Status Docs
Stable Doc-Latest-Badge HTML / PDF / Epub
Dev Build Doc-Nightly-Badge HTML / PDF / Epub

Download and Install

For Windows users, we strongly suggest a standalone executable:

Click Here to Download OctaDist-3.0.0-Win-x86-64.exe

For Linux or macOS users and already have Python 3 installed on the system, the easiest way to install OctaDist is to use pip.

pip install octadist

or use conda for those who have Anaconda:

conda install -c rangsiman octadist

Starting OctaDist

The following commands can be used to start OctaDist in different ways:

Graphical User Interface (GUI)

To start GUI program:

octadist

Screenshots of program:

OctaDist GUI XYZ coordinates Computed distortion parameters

Command Line Interface (CLI)

To start program command line:

octadist_cli

To calculate distortion parameters:

octadist_cli --inp EXAMPLE_INPUT.xyz

To calculate distortion parameters and show formatted output:

octadist_cli --inp EXAMPLE_INPUT.xyz --out

Supporting input format

Running the tests

Example 1: OctaDist as a package

import octadist as oc

# Prepare list of atomic coordinates of octahedral structure:

atom = ['Fe', 'O', 'O', 'N', 'N', 'N', 'N']

coord = [[2.298354000, 5.161785000, 7.971898000],  # <- Metal atom
         [1.885657000, 4.804777000, 6.183726000],
         [1.747515000, 6.960963000, 7.932784000],
         [4.094380000, 5.807257000, 7.588689000],
         [0.539005000, 4.482809000, 8.460004000],
         [2.812425000, 3.266553000, 8.131637000],
         [2.886404000, 5.392925000, 9.848966000]]

dist = oc.CalcDistortion(coord)
zeta = dist.zeta             # 0.228072561
delta = dist.delta           # 0.000476251
sigma = dist.sigma           # 47.92652837
theta = dist.theta           # 122.6889727

Example 2: Display 3D structure of molecule

import os
import octadist as oc

dir_path = os.path.dirname(os.path.realpath(__file__))
input_folder = os.path.join(dir_path, "../example-input/")
file = input_folder + "Multiple-metals.xyz"

atom_full, coord_full = oc.io.extract_coord(file)

my_plot = oc.draw.DrawComplex_Matplotlib(atom=atom_full, coord=coord_full)
my_plot.add_atom()
my_plot.add_bond()
my_plot.add_legend()
my_plot.save_img()
my_plot.show_plot()

# Figure will be saved as Complex_saved_by_OctaDist.png by default.

molecule

Other example scripts and octahedral complexes are available at example-py and example-input, respectively.

Citation

Please cite this project when you use OctaDist for scientific publication.

Ketkaew, R.; Tantirungrotechai, Y.; Harding, P.; Chastanet, G.; Guionneau, P.; Marchivie, M.; Harding, D. J. 
OctaDist: A Tool for Calculating Distortion Parameters in Spin Crossover and Coordination Complexes. 
Dalton Trans., 2021,50, 1086-1096. https://doi.org/10.1039/D0DT03988H

BibTeX

@article{Ketkaew2021,
  doi = {10.1039/d0dt03988h},
  url = {https://doi.org/10.1039/d0dt03988h},
  year = {2021},
  publisher = {Royal Society of Chemistry ({RSC})},
  volume = {50},
  number = {3},
  pages = {1086--1096},
  author = {Rangsiman Ketkaew and Yuthana Tantirungrotechai and Phimphaka Harding and Guillaume Chastanet and Philippe Guionneau and Mathieu Marchivie and David J. Harding},
  title = {OctaDist: a tool for calculating distortion parameters in spin crossover and coordination complexes},
  journal = {Dalton Transactions}
}

Bug report

If you found issues in OctaDist, please report it to us at here.

Project team

Comments
  • Bug in screen out the unwanted angle for theta parameter

    Bug in screen out the unwanted angle for theta parameter

    The \theta angle (Ligand-Metal-Ligand) on the same plane that is greater than 60 degree would be changed to 60 degree. The angle value can be less than, equal to, and greater than 60 degree. This condition for removing the unwanted angles is wrong.

    opened by rangsimanketkaew 1
  • Merge Dev v3.0.0 to master

    Merge Dev v3.0.0 to master

    v3.0.0 is the next version of OctaDist that we plan to release by March 2021.

    New features:

    • CIF (experiment) is now supported. (see #22)
    • A new visualizer by Plotly for drawing molecule. 10x faster than Matplotlib.

    Rangsiman

    opened by rangsimanketkaew 0
  • Merge v2.6.2 from nightly-build to master.

    Merge v2.6.2 from nightly-build to master.

    This pull request contains several commits which mainly

    • improve coding style (make it more pythonic)
    • fix CLI runner
    • update documentation and docstring
    • correct typos
    opened by rangsimanketkaew 0
  • Octadist 2.3 beta

    Octadist 2.3 beta

    • Switched to use Mathieu's algorithm
    • This version provides a reasonable Theta value for both regular and irregular octahedral complexes
    • Unable to compile this version as a standalone executable
    • Having a problem with molecular visualization
    opened by rangsimanketkaew 0
  • v2.3_alpha_pull_rq

    v2.3_alpha_pull_rq

    • Decorated program GUI
    • Removed RMSD
    • Improved code performance
    • Added hide/show button for showing sub-window of stdout and stderr progress information
    • Added box to show min, max, and mean Theta values
    enhancement 
    opened by rangsimanketkaew 0
  • Improve the GUI of OctaDist

    Improve the GUI of OctaDist

    Hi OctaDist's developers & users,

    Thanks all for using & supporting OctaDist. OctaDist joins Hacktoberfest this year and we welcome all contributions to make OctaDist better. One of the contributions you can make is the improvement of the GUI of OctaDist. Feel free to send your PR with the hashtag #hacktoberfest !

    Best, Rangsiman

    Hacktoberfest 
    opened by rangsimanketkaew 0
  • ASE integration

    ASE integration

    Dear colleagues, thanks for the nice tool! Are there any plans to integrate with the atomic simulation environment Python framework which is very widely used? The integration seems to be relatively straightforward.

    opened by blokhin 2
  • tkinter.filedialog linked with Tk 8.6.11 crashes on macOS 12 Monterey, breaking IDLE saves

    tkinter.filedialog linked with Tk 8.6.11 crashes on macOS 12 Monterey, breaking IDLE saves

    OctaDist's open file dialog failed on macOS Monterey. Please refer to this thread https://bugs.python.org/issue44828 for more details. However, macOS users are still able to use OctaDist via the command-line interface (CLI):

    octadist_cli -i file.xyz -o
    
    opened by rangsimanketkaew 0
  • Cannot read an XYZ file that saved by OctaDist

    Cannot read an XYZ file that saved by OctaDist

    OctaDist can save the Cartesian coordinate of a molecule as an XYZ file. However, OctaDist fails to read this file.

    Steps to reproduce

    1. Browse a molecule
    2. Save its coordinate as a new file called, e.g., octahedron.xyz
    3. Browse octahedron.xyz file and OctaDist yields the following error
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\Nutt\miniconda3\lib\tkinter\__init__.py", line 1705, in __call__
        return self.func(*args)
      File "C:\Users\Nutt\Desktop\github\OctaDist\octadist\main.py", line 415, in open_file
        self.search_coord()
      File "C:\Users\Nutt\Desktop\github\OctaDist\octadist\main.py", line 451, in search_coord
        total_metal, atom_metal, coord_metal = molecule.find_metal(atom_full, coord_full)
      File "C:\Users\Nutt\Desktop\github\OctaDist\octadist\src\molecule.py", line 778, in find_metal
        21 <= number <= 30
    TypeError: '<=' not supported between instances of 'int' and 'NoneType'
    
    opened by rangsimanketkaew 0
Releases(v.3.0.0)
Owner
OctaDist
Octahedral Distortion Calculator
OctaDist
SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking

SPLADE 🍴 + 🥄 = 🔎 This repository contains the weights for four models as well as the code for running inference for our two papers: [v1]: SPLADE: S

NAVER 170 Dec 28, 2022
なりすまし検出(anti-spoof-mn3)のWebカメラ向けデモ

FaceDetection-Anti-Spoof-Demo なりすまし検出(anti-spoof-mn3)のWebカメラ向けデモです。 モデルはPINTO_model_zoo/191_anti-spoof-mn3からONNX形式のモデルを使用しています。 Requirement mediapipe

KazuhitoTakahashi 8 Nov 18, 2022
Main Results on ImageNet with Pretrained Models

This repository contains Pytorch evaluation code, training code and pretrained models for the following projects: SPACH (A Battle of Network Structure

Microsoft 151 Dec 14, 2022
Lyapunov-guided Deep Reinforcement Learning for Stable Online Computation Offloading in Mobile-Edge Computing Networks

PyTorch code to reproduce LyDROO algorithm [1], which is an online computation offloading algorithm to maximize the network data processing capability subject to the long-term data queue stability an

Liang HUANG 87 Dec 28, 2022
RIM: Reliable Influence-based Active Learning on Graphs.

RIM: Reliable Influence-based Active Learning on Graphs. This repository is the official implementation of RIM. Requirements To install requirements:

Wentao Zhang 4 Aug 29, 2022
This project aims at providing a concise, easy-to-use, modifiable reference implementation for semantic segmentation models using PyTorch.

Semantic Segmentation on PyTorch (include FCN, PSPNet, Deeplabv3, Deeplabv3+, DANet, DenseASPP, BiSeNet, EncNet, DUNet, ICNet, ENet, OCNet, CCNet, PSANet, CGNet, ESPNet, LEDNet, DFANet)

2.4k Jan 08, 2023
A repository for benchmarking neural vocoders by their quality and speed.

License The majority of VocBench is licensed under CC-BY-NC, however portions of the project are available under separate license terms: Wavenet, Para

Meta Research 177 Dec 12, 2022
DISTIL: Deep dIverSified inTeractIve Learning.

DISTIL: Deep dIverSified inTeractIve Learning. An active/inter-active learning library built on py-torch for reducing labeling costs.

decile-team 110 Dec 06, 2022
This is an official implementation for the WTW Dataset in "Parsing Table Structures in the Wild " on table detection and table structure recognition.

WTW-Dataset This is an official implementation for the WTW Dataset in "Parsing Table Structures in the Wild " on ICCV 2021. Here, you can download the

109 Dec 29, 2022
Model-based reinforcement learning in TensorFlow

Bellman Website | Twitter | Documentation (latest) What does Bellman do? Bellman is a package for model-based reinforcement learning (MBRL) in Python,

46 Nov 09, 2022
Explore extreme compression for pre-trained language models

Code for paper "Exploring extreme parameter compression for pre-trained language models ICLR2022"

twinkle 16 Nov 14, 2022
EDPN: Enhanced Deep Pyramid Network for Blurry Image Restoration

EDPN: Enhanced Deep Pyramid Network for Blurry Image Restoration Ruikang Xu, Zeyu Xiao, Jie Huang, Yueyi Zhang, Zhiwei Xiong. EDPN: Enhanced Deep Pyra

69 Dec 15, 2022
Implementation for Paper "Inverting Generative Adversarial Renderer for Face Reconstruction"

StyleGAR TODO: add arxiv link Implementation of Inverting Generative Adversarial Renderer for Face Reconstruction TODO: for test Currently, some model

155 Oct 27, 2022
Code for You Only Cut Once: Boosting Data Augmentation with a Single Cut

You Only Cut Once (YOCO) YOCO is a simple method/strategy of performing augmenta

88 Dec 28, 2022
Code for CVPR 2021 oral paper "Exploring Data-Efficient 3D Scene Understanding with Contrastive Scene Contexts"

Exploring Data-Efficient 3D Scene Understanding with Contrastive Scene Contexts The rapid progress in 3D scene understanding has come with growing dem

Facebook Research 182 Dec 30, 2022
[SIGGRAPH 2020] Attribute2Font: Creating Fonts You Want From Attributes

Attr2Font Introduction This is the official PyTorch implementation of the Attribute2Font: Creating Fonts You Want From Attributes. Paper: arXiv | Rese

Yue Gao 200 Dec 15, 2022
Code for ICLR2018 paper: Improving GAN Training via Binarized Representation Entropy (BRE) Regularization - Y. Cao · W Ding · Y.C. Lui · R. Huang

code for "Improving GAN Training via Binarized Representation Entropy (BRE) Regularization" (ICLR2018 paper) paper: https://arxiv.org/abs/1805.03644 G

21 Oct 12, 2020
Swin-Transformer is basically a hierarchical Transformer whose representation is computed with shifted windows.

Swin-Transformer Swin-Transformer is basically a hierarchical Transformer whose representation is computed with shifted windows. For more details, ple

旷视天元 MegEngine 9 Mar 14, 2022
Commonality in Natural Images Rescues GANs: Pretraining GANs with Generic and Privacy-free Synthetic Data - Official PyTorch Implementation (CVPR 2022)

Commonality in Natural Images Rescues GANs: Pretraining GANs with Generic and Privacy-free Synthetic Data (CVPR 2022) Potentials of primitive shapes f

31 Sep 27, 2022
A Convolutional Transformer for Keyword Spotting

☢️ Audiomer ☢️ Audiomer: A Convolutional Transformer for Keyword Spotting [ arXiv ] [ Previous SOTA ] [ Model Architecture ] Results on SpeechCommands

49 Jan 27, 2022