Skip to content

Instantly share code, notes, and snippets.

View ghutchis's full-sized avatar

Geoff Hutchison ghutchis

View GitHub Profile
@ghutchis
ghutchis / atomtype.cpp
Last active March 6, 2024 21:16
Avogadro2 Atom symbols and Neighbors
auto graph = m_molecule->graph();
for (Index i = 0; i < m_molecule->atomCount(); ++i)
{
// print the symbol for the atom
Core::Atom atom = m_molecule->atom(i);
std::string atomType = Core::Elements::symbol(atom.atomicNumber());
std::cout << "Atom " << atomType << " (" << i << ")" << std::endl;
// check neighbors
@ghutchis
ghutchis / test-avoscript.py
Created October 1, 2023 23:46
Avogadro Script Command Tester
#!/usr/bin/env python
import sys
import json
import subprocess
# example molecule for testing
water = {
"chemicalJson": 1,
"atoms": {
@ghutchis
ghutchis / orbitals.py
Created September 14, 2023 02:57
Avogadro Batch Render Orbitals
#!/usr/bin/python
import json
import socket
import struct
import glob
import tempfile
import os
import time
@ghutchis
ghutchis / cclib-rdkit.py
Created August 4, 2023 20:55
Import cclib files to RDKit molecules
#!/usr/bin/env python
import sys
import os
import cclib
from cclib.parser import ccopen
from rdkit import Chem
try:
@ghutchis
ghutchis / screenshots.py
Created April 9, 2023 18:58
Avogadro2 XYZ directory to PNG
#!/usr/bin/python
import json
import socket
import struct
import glob
import tempfile
import os
class Connection:
@ghutchis
ghutchis / chemicaljson.py
Last active August 4, 2022 14:17
Draft pydantic model for Chemical JSON (cjson)
from __future__ import annotations
from typing import List, Optional
from pydantic import BaseModel, Field
# todo:
# - double-check open-spin systems
# - other suggestions
@ghutchis
ghutchis / cjson.patch
Created June 8, 2022 13:19
OB CJSON support
diff --git a/src/formats/formats.cmake b/src/formats/formats.cmake
index c94c8def2..70ee7d81c 100644
--- a/src/formats/formats.cmake
+++ b/src/formats/formats.cmake
@@ -77,6 +77,7 @@ endif(MSVC OR HAVE_REGEX_H)
if(WITH_JSON)
set(formats_json
chemdoodlejsonformat
+ chemicaljsonformat
pubchemjsonformat
@ghutchis
ghutchis / pywrl.py
Created February 3, 2022 18:25
Open Babel to VRML script
#!/usr/bin/env python
import sys, os, math, random
from openbabel import pybel
from openbabel import openbabel as ob
colors = [ [ 0, 0, 0 ], # Du
[0.75, 0.75, 0.75], # H
[0.85, 1.00, 1.00], # He
@ghutchis
ghutchis / nConf20.py
Created May 17, 2021 15:46
nConf20 descriptor from Wicker and Cooper 2016 - https://pubs.acs.org/doi/10.1021/acs.jcim.6b00565
# Calculate nConf20 - from https://pubs.acs.org/doi/10.1021/acs.jcim.6b00565
# Jerome G. P. Wicker and Richard I. Cooper J. Chem. Inf. Model. 2016 56(12) pp. 2347-2352
# reformatted for Python3 by Geoffrey R. Hutchison https://hutchison.chem.pitt.edu
from collections import OrderedDict
import fileinput
import numpy as np
from rdkit import Chem
@ghutchis
ghutchis / molml.py
Last active April 20, 2024 16:30
Open Babel / Pybel script to report all bonds, angles, torsions, and non-bonded interactions
#!/usr/bin/env python
import sys, os
from openbabel import openbabel as ob
from openbabel import pybel
# syntax:
# molml.py [files]