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
SCALE: Modeling Clothed Humans with a Surface Codec of Articulated Local Elements (CVPR 2021)

SCALE: Modeling Clothed Humans with a Surface Codec of Articulated Local Elements (CVPR 2021) This repository contains the official PyTorch implementa

Qianli Ma 133 Jan 05, 2023
Storchastic is a PyTorch library for stochastic gradient estimation in Deep Learning

Storchastic is a PyTorch library for stochastic gradient estimation in Deep Learning

Emile van Krieken 140 Dec 30, 2022
Point-NeRF: Point-based Neural Radiance Fields

Point-NeRF: Point-based Neural Radiance Fields Project Sites | Paper | Primary c

Qiangeng Xu 662 Jan 01, 2023
某学校选课系统GIF验证码数据集 + Baseline模型 + 上下游相关工具

elective-dataset-2021spring 某学校2021春季选课系统GIF验证码数据集(29338张) + 准确率98.4%的Baseline模型 + 上下游相关工具。 数据集采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。 Baseline模型和上下游相关工具采用

xmcp 27 Sep 17, 2021
Distributed DataLoader For Pytorch Based On Ray

Dpex——用户无感知分布式数据预处理组件 一、前言 随着GPU与CPU的算力差距越来越大以及模型训练时的预处理Pipeline变得越来越复杂,CPU部分的数据预处理已经逐渐成为了模型训练的瓶颈所在,这导致单机的GPU配置的提升并不能带来期望的线性加速。预处理性能瓶颈的本质在于每个GPU能够使用的C

Dalong 23 Nov 02, 2022
Try out deep learning models online on Google Colab

Try out deep learning models online on Google Colab

Erdene-Ochir Tuguldur 1.5k Dec 27, 2022
Bare bones use-case for deploying a containerized web app (built in streamlit) on AWS.

Containerized Streamlit web app This repository is featured in a 3-part series on Deploying web apps with Streamlit, Docker, and AWS. Checkout the blo

Collin Prather 62 Jan 02, 2023
Facial detection, landmark tracking and expression transfer library for Windows, Linux and Mac

Welcome to the CSIRO Face Analysis SDK. Documentation for the SDK can be found in doc/documentation.html. All code in this SDK is provided according t

Luiz Carlos Vieira 7 Jul 16, 2020
Code for MarioNette: Self-Supervised Sprite Learning, in NeurIPS 2021

MarioNette | Webpage | Paper | Video MarioNette: Self-Supervised Sprite Learning Dmitriy Smirnov, Michaël Gharbi, Matthew Fisher, Vitor Guizilini, Ale

Dima Smirnov 28 Nov 18, 2022
[CVPR21] LightTrack: Finding Lightweight Neural Network for Object Tracking via One-Shot Architecture Search

LightTrack: Finding Lightweight Neural Networks for Object Tracking via One-Shot Architecture Search The official implementation of the paper LightTra

Multimedia Research 290 Dec 24, 2022
Job Assignment System by Real-time Emotion Detection

Emotion-Detection Job Assignment System by Real-time Emotion Detection Emotion is the essential role of facial expression and it could provide a lot o

1 Feb 08, 2022
Keras community contributions

keras-contrib : Keras community contributions Keras-contrib is deprecated. Use TensorFlow Addons. The future of Keras-contrib: We're migrating to tens

Keras 1.6k Dec 21, 2022
A hifiasm fork for metagenome assembly using Hifi reads.

hifiasm_meta - de novo metagenome assembler, based on hifiasm, a haplotype-resolved de novo assembler for PacBio Hifi reads.

44 Jul 10, 2022
Model search is a framework that implements AutoML algorithms for model architecture search at scale

Model search (MS) is a framework that implements AutoML algorithms for model architecture search at scale. It aims to help researchers speed up their exploration process for finding the right model a

Google 3.2k Dec 31, 2022
Pytorch domain adaptation package

DomainAdaptation This package is created to tackle the problem of domain shifts when dealing with two domains of different feature distributions. In d

Institute of Computational Perception 7 Oct 22, 2022
Deeper insights into graph convolutional networks for semi-supervised learning

deeper_insights_into_GCNs Deeper insights into graph convolutional networks for semi-supervised learning References data and utils.py come from Implem

Davidham3 17 Dec 16, 2022
A minimalist environment for decision-making in autonomous driving

highway-env A collection of environments for autonomous driving and tactical decision-making tasks An episode of one of the environments available in

Edouard Leurent 1.6k Jan 07, 2023
🚀 An end-to-end ML applications using PyTorch, W&B, FastAPI, Docker, Streamlit and Heroku

🚀 An end-to-end ML applications using PyTorch, W&B, FastAPI, Docker, Streamlit and Heroku

Made With ML 82 Jun 26, 2022
Discerning Decision-Making Process of Deep Neural Networks with Hierarchical Voting Transformation

Configurations Change HOME_PATH in CONFIG.py as the current path Data Prepare CENSINCOME Download data Put census-income.data and census-income.test i

2 Aug 14, 2022
Codes for AAAI 2022 paper: Context-aware Health Event Prediction via Transition Functions on Dynamic Disease Graphs

Context-Aware-Healthcare Codes for AAAI 2022 paper: Context-aware Health Event Prediction via Transition Functions on Dynamic Disease Graphs Download

LuChang 9 Dec 26, 2022