Skip to main content

Set of tools to aid structure refinement with TOPAS

Project description

PyPI - Python Version PyPI DOI

Topas tools

These are set of small scripts and tools that were developed to help with structure refinement (of zeolites in particular) using the program TOPAS.

topasdiff

Topasdiff is a tool to generate nice looking difference maps. First, output the observed structure factors, and structure in cif format from Topas:

Out_fobs(fobs.hkl)
Out_CIF_STR(structure.cif)

Observed structure factors can be generated using this macro (add this to C:/topas5/local.inc):

macro Out_fobs(file)
{
   phase_out file load out_record out_fmt out_eqn
   {
       "%4.0f" = H;
       "%4.0f" = K;
       "%4.0f" = L;
       '"%4.0f" = M;
       "%12.4f\n" = (Iobs_no_scale_pks / M)^(0.5);
   }
}

Then to calculate the difference map, run the command:

topasdiff structure.cif --diff fobs.hkl

or use the GUI, accessible available via topasdiff.bat (Windows). The program will ask for the scale factor provided by TOPAS, and generates an input file for the program superflip (http://superflip.fzu.cz/). Superflip is then used to perform the fourier transform, and generates an .XPLOR file that can be visualized using Chimera or VESTA.

Note: There is a bug in Topas where the cif files it outputs cannot be read using CCTBX, because they lack the data header. A work-around is to open C:/topas5/topas.inc and modify all instances of:

Out_String("\ndata_")

by:

Out_String("\ndata_topas_cif_out")

topasdiff gui

cif2topas

cif2topas transforms a crystal structure into cif format into the corresponding TOPAS code.

Usage:

cif2topas structure.cif

fh2topas

fh2topas is a script that converts from Fenske-Hall z-matrix to TOPAS code

Usage:

fh2topas zmatrix.fh [n]

Here, n is an optional parameter to give the number of molecules to generate. fh2topas will automatically number them to avoid naming conflicts.

topasrestraints

topasrestraints is a tool that can help with the generation of bond and angle restraints for structure refinement of zeolites with TOPAS. First, generate all bonds by using the TOPAS instruction:

append_bond_lengths

to generate all bonds and angles, including their symmetry codes for the current structure. Copy everything between the curly brackets to a new file called bonds.txt, and run:

topasrestraints bonds.txt

This generates a file called restraints.out that contains the restraints that can be added to TOPAS. The script checks for all distances of 1.61 +- 0.4 Angstrom to identify T-O bonds. The program checks the connectivity for every atom, and reports if there is a problem (too many / not enough distances per T-atom). There is no check for symmetrically equivalent connections, so some restraints may be redundant.

stripcif

stripcif is a tool to clean a cif file from all extra metadata. Essentially it reads a cif file and writes it back to structure_simple.cif with just the cell parameters and atomic coordinates.

Usage:

stripcif structure.cif

expandcell

expandcell is a tool to take a cif file and expand the axes along different directions to form a supercell.

For example:

expandcell structure.cif -z2

will write a cif in P1 the z axis doubled. You can then use a tool like PLATON to find the right symmetry for this structure (if needed). You can use:

expandcell structure.cif -z2 -s SPGR --shift X Y Z

to force the new a new symmetry on the output. Here SPGR is the space group suggested by platon, and --shift X Y Z is the suggested origin shift.

The option -e can be used to exclude elements from the result.

make_superflip

This is a very simple tool that asks a couple of questions and writes an input file for superflip.

Usage:

make_superflip

Requirements

Installation

  1. Install miniconda (pick the one suitable for your platform, Python version does not matter here).

  2. Install using:

conda create -n topas_tools -c conda-forge cctbx-base
conda activate topas_tools
pip install topas_tools

Or use the environment file:

conda env create -f environment.yml
conda activate topas_tools
pip install -e .

(note that every time you want to use topas_tools, you must always activate the environment using conda activate topas_tools)

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

topas_tools-1.0.1.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

topas_tools-1.0.1-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file topas_tools-1.0.1.tar.gz.

File metadata

  • Download URL: topas_tools-1.0.1.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for topas_tools-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2c11056a56f3f078be7b4a7d8d1131c1017e9cf06fb6d679bbf98c1e59c89e2b
MD5 1777fd5a7def7483aca437eecff8cb83
BLAKE2b-256 c30a511f159ec0e01eabbd3d60103429de3ce59130ec5a184d8f84f2fe2c5195

See more details on using hashes here.

File details

Details for the file topas_tools-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: topas_tools-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for topas_tools-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6f8a01db47d1601d1dcf18291690219d6ebe1231bf31050f4051be62440d37c
MD5 8627ee421f5a2bf083b0b48ffacceee7
BLAKE2b-256 1e10e576262b814d7be15c09e47100bb9bffdcecf51d5f6c6b3a33f55623888d

See more details on using hashes here.

Supported by

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