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
How to Leverage Multimodal EHR Data for Better Medical Predictions?

How to Leverage Multimodal EHR Data for Better Medical Predictions? This repository contains the code of the paper: How to Leverage Multimodal EHR Dat

13 Dec 13, 2022
A library for Deep Learning Implementations and utils

deeply A Deep Learning library Table of Contents Features Quick Start Usage License Features Python 2.7+ and Python 3.4+ compatible. Quick Start $ pip

Achilles Rasquinha 1 Dec 12, 2022
This is the repository for the AAAI 21 paper [Contrastive and Generative Graph Convolutional Networks for Graph-based Semi-Supervised Learning].

CG3 This is the repository for the AAAI 21 paper [Contrastive and Generative Graph Convolutional Networks for Graph-based Semi-Supervised Learning]. R

12 Oct 28, 2022
Blind visual quality assessment on 360° Video based on progressive learning

Blind visual quality assessment on omnidirectional or 360 video (ProVQA) Blind VQA for 360° Video via Progressively Learning from Pixels, Frames and V

5 Jan 06, 2023
Code for Environment Dynamics Decomposition (ED2).

ED2 Code for Environment Dynamics Decomposition (ED2). Installation Follow the installation in MBPO and Dreamer. Usage First follow the SD2 method for

0 Aug 10, 2021
Official implementation for Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020

Likelihood-Regret Official implementation of Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020. T

Xavier 33 Oct 12, 2022
Code base of object detection

rmdet code base of object detection. 环境安装: 1. 安装conda python环境 - `conda create -n xxx python=3.7/3.8` - `conda activate xxx` 2. 运行脚本,自动安装pytorch1

3 Mar 08, 2022
Scrutinizing XAI with linear ground-truth data

This repository contains all the experiments presented in the corresponding paper: "Scrutinizing XAI using linear ground-truth data with suppressor va

braindata lab 2 Oct 04, 2022
A Runtime method overload decorator which should behave like a compiled language

strongtyping-pyoverload A Runtime method overload decorator which should behave like a compiled language there is a override decorator from typing whi

20 Oct 31, 2022
Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Troyanskaya Laboratory 323 Jan 01, 2023
Consensus score for tripadvisor

ContripScore ContripScore is essentially a score that combines an Internet platform rating and a consensus rating from sentiment analysis (For instanc

Pepe 1 Jan 13, 2022
Codes for the AAAI'22 paper "TransZero: Attribute-guided Transformer for Zero-Shot Learning"

TransZero [arXiv] This repository contains the testing code for the paper "TransZero: Attribute-guided Transformer for Zero-Shot Learning" accepted to

Shiming Chen 52 Jan 01, 2023
CO-PILOT: COllaborative Planning and reInforcement Learning On sub-Task curriculum

CO-PILOT CO-PILOT: COllaborative Planning and reInforcement Learning On sub-Task curriculum, NeurIPS 2021, Shuang Ao, Tianyi Zhou, Guodong Long, Qingh

Shuang Ao 1 Feb 18, 2022
Official implementation of "UCTransNet: Rethinking the Skip Connections in U-Net from a Channel-wise Perspective with Transformer"

[AAAI2022] UCTransNet This repo is the official implementation of "UCTransNet: Rethinking the Skip Connections in U-Net from a Channel-wise Perspectiv

Haonan Wang 199 Jan 03, 2023
Supervised Contrastive Learning for Downstream Optimized Sequence Representations

SupCL-Seq 📖 Supervised Contrastive Learning for Downstream Optimized Sequence representations (SupCS-Seq) accepted to be published in EMNLP 2021, ext

Hooman Sedghamiz 18 Oct 21, 2022
[CVPR 2020] Interpreting the Latent Space of GANs for Semantic Face Editing

InterFaceGAN - Interpreting the Latent Space of GANs for Semantic Face Editing Figure: High-quality facial attributes editing results with InterFaceGA

GenForce: May Generative Force Be with You 1.3k Dec 29, 2022
A large-scale video dataset for the training and evaluation of 3D human pose estimation models

ASPset-510 (Australian Sports Pose Dataset) is a large-scale video dataset for the training and evaluation of 3D human pose estimation models. It contains 17 different amateur subjects performing 30

Aiden Nibali 25 Jun 20, 2021
Training RNNs as Fast as CNNs

News SRU++, a new SRU variant, is released. [tech report] [blog] The experimental code and SRU++ implementation are available on the dev branch which

ASAPP Research 2.1k Jan 01, 2023
A knowledge base construction engine for richly formatted data

Fonduer is a Python package and framework for building knowledge base construction (KBC) applications from richly formatted data. Note that Fonduer is

HazyResearch 386 Dec 05, 2022
Pytorch implementation for "Density-aware Chamfer Distance as a Comprehensive Metric for Point Cloud Completion" (NeurIPS 2021)

Density-aware Chamfer Distance This repository contains the official PyTorch implementation of our paper: Density-aware Chamfer Distance as a Comprehe

Tong WU 93 Dec 15, 2022