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
Multi-task yolov5 with detection and segmentation based on yolov5

YOLOv5DS Multi-task yolov5 with detection and segmentation based on yolov5(branch v6.0) decoupled head anchor free segmentation head README中文 Ablation

150 Dec 30, 2022
DeepLM: Large-scale Nonlinear Least Squares on Deep Learning Frameworks using Stochastic Domain Decomposition (CVPR 2021)

DeepLM DeepLM: Large-scale Nonlinear Least Squares on Deep Learning Frameworks using Stochastic Domain Decomposition (CVPR 2021) Run Please install th

Jingwei Huang 130 Dec 02, 2022
Learning where to learn - Gradient sparsity in meta and continual learning

Learning where to learn - Gradient sparsity in meta and continual learning In this paper, we investigate gradient sparsity found by MAML in various co

Johannes Oswald 28 Dec 09, 2022
Deep Q-learning for playing chrome dino game

[PYTORCH] Deep Q-learning for playing Chrome Dino

Viet Nguyen 68 Dec 05, 2022
Pytorch implementation of our paper accepted by NeurIPS 2021 -- Revisiting Discriminator in GAN Compression: A Generator-discriminator Cooperative Compression Scheme

Revisiting Discriminator in GAN Compression: A Generator-discriminator Cooperative Compression Scheme (NeurIPS2021) (Link) Overview Prerequisites Linu

Shaojie Li 34 Mar 31, 2022
Augmented CLIP - Training simple models to predict CLIP image embeddings from text embeddings, and vice versa.

Train aug_clip against laion400m-embeddings found here: https://laion.ai/laion-400-open-dataset/ - note that this used the base ViT-B/32 CLIP model. S

Peter Baylies 55 Sep 13, 2022
Rasterize with the least efforts for researchers.

utils3d Rasterize and do image-based 3D transforms with the least efforts for researchers. Based on numpy and OpenGL. It could be helpful when you wan

Ruicheng Wang 8 Dec 15, 2022
An implementation of the efficient attention module.

Efficient Attention An implementation of the efficient attention module. Description Efficient attention is an attention mechanism that substantially

Shen Zhuoran 194 Dec 15, 2022
Tutorial to set up TensorFlow Object Detection API on the Raspberry Pi

A tutorial showing how to set up TensorFlow's Object Detection API on the Raspberry Pi

Evan 1.1k Dec 26, 2022
Devkit for 3D -- Some utils for 3D object detection based on Numpy and Pytorch

D3D Devkit for 3D: Some utils for 3D object detection and tracking based on Numpy and Pytorch Please consider siting my work if you find this library

Jacob Zhong 27 Jul 07, 2022
This repository is for Competition for ML_data class

This repository is for Competition for ML_data class. Based on mmsegmentatoin,mainly using swin transformer to completed the competition.

jianlong 2 Oct 23, 2022
Building blocks for uncertainty-aware cycle consistency presented at NeurIPS'21.

UncertaintyAwareCycleConsistency This repository provides the building blocks and the API for the work presented in the NeurIPS'21 paper Robustness vi

EML Tübingen 19 Dec 12, 2022
Machine learning framework for both deep learning and traditional algorithms

NeoML is an end-to-end machine learning framework that allows you to build, train, and deploy ML models. This framework is used by ABBYY engineers for

NeoML 704 Dec 27, 2022
LightningFSL: Pytorch-Lightning implementations of Few-Shot Learning models.

LightningFSL: Few-Shot Learning with Pytorch-Lightning In this repo, a number of pytorch-lightning implementations of FSL algorithms are provided, inc

Xu Luo 76 Dec 11, 2022
Stratified Transformer for 3D Point Cloud Segmentation (CVPR 2022)

Stratified Transformer for 3D Point Cloud Segmentation Xin Lai*, Jianhui Liu*, Li Jiang, Liwei Wang, Hengshuang Zhao, Shu Liu, Xiaojuan Qi, Jiaya Jia

DV Lab 195 Jan 01, 2023
AI创造营 :Metaverse启动机之重构现世,结合PaddlePaddle 和 Wechaty 创造自己的聊天机器人

paddle-wechaty-Zodiac AI创造营 :Metaverse启动机之重构现世,结合PaddlePaddle 和 Wechaty 创造自己的聊天机器人 12星座若穿越科幻剧,会拥有什么超能力呢?快来迎接你的专属超能力吧! 现在很多年轻人都喜欢看科幻剧,像是复仇者系列,里面有很多英雄、超

105 Dec 22, 2022
This is the repo for the paper "Improving the Accuracy-Memory Trade-Off of Random Forests Via Leaf-Refinement".

Improving the Accuracy-Memory Trade-Off of Random Forests Via Leaf-Refinement This is the repository for the paper "Improving the Accuracy-Memory Trad

3 Dec 29, 2022
In this project we investigate the performance of the SetCon model on realistic video footage. Therefore, we implemented the model in PyTorch and tested the model on two example videos.

Contrastive Learning of Object Representations Supervisor: Prof. Dr. Gemma Roig Institutions: Goethe University CVAI - Computational Vision & Artifici

Dirk Neuhäuser 6 Dec 08, 2022
Keras implementation of Deeplab v3+ with pretrained weights

Keras implementation of Deeplabv3+ This repo is not longer maintained. I won't respond to issues but will merge PR DeepLab is a state-of-art deep lear

1.3k Dec 07, 2022
A simple python module to generate anchor (aka default/prior) boxes for object detection tasks.

PyBx WIP A simple python module to generate anchor (aka default/prior) boxes for object detection tasks. Calculated anchor boxes are returned as ndarr

thatgeeman 4 Dec 15, 2022