Skip to content

Instantly share code, notes, and snippets.

View ghutchis's full-sized avatar

Geoff Hutchison ghutchis

View GitHub Profile
@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 / readingList.py
Created May 11, 2017 02:00
Parse Safari Reading List using Python
import os
import plistlib
import requests
INPUT_FILE = os.path.join(os.environ['HOME'], 'Library/Safari/Bookmarks.plist')
OUTPUT_FILE = 'readinglist.txt'
# Load and parse the Bookmarks file
with open(INPUT_FILE, 'rb') as plist_file:
plist = plistlib.load(plist_file)
@ghutchis
ghutchis / gen-conformers.py
Created March 6, 2018 19:33
Generate conformers with normal mode sampling
#!/usr/bin/env python
from __future__ import print_function
import sys
import logging
import numpy as np
from cclib.io import ccopen
from nms import nmsgenerator
from masses import element_masses
#!/usr/bin/env python
from __future__ import print_function
import sys
from cclib.parser import ccopen
import logging
def spectra(etens, etoscs, low = 0.5, high = 10.0, resolution = 0.01, smear = 0.04):
"""Return arrays of the energies and intensities of a Lorentzian-blurred spectrum"""
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 1a53e8cdd..bbf92481c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -23,7 +23,7 @@ set (cpptests
)
set (alias_parts 1)
set (automorphism_parts 1 2 3 4 5 6 7 8 9 10)
-set (builder_parts 1 2 3 4 5)
+set (builder_parts 1 2 3 4 5 6)
@ghutchis
ghutchis / mol-dipoles.py
Created October 9, 2018 17:48
Calculation dipole moments using Open Babel in Python
#!/usr/bin/env python
from __future__ import print_function
import sys
import os
import math
import pybel
@ghutchis
ghutchis / selected atoms.diff
Created February 11, 2020 20:44
Diff for selected atoms
diff --git a/avogadro/qtgui/interfacescript.cpp b/avogadro/qtgui/interfacescript.cpp
index f0ad088..c0c2141 100644
--- a/avogadro/qtgui/interfacescript.cpp
+++ b/avogadro/qtgui/interfacescript.cpp
@@ -458,6 +458,14 @@ bool InterfaceScript::insertMolecule(QJsonObject& json,
if (m_moleculeExtension == QLatin1String("None"))
return true;
+ // insert the selected atoms
+ QJsonArray selectedList;
@ghutchis
ghutchis / ob-optimize.py
Created January 24, 2020 20:52
Open Babel optimizer
#!/usr/bin/env python
import sys, os
from openbabel import pybel
# read through multiple files on command-line
for argument in sys.argv[1:]:
filename, extension = os.path.splitext(argument)