Esempio n. 1
0
    def test_json(self):
        f1 = MagresFile(open(os.path.join(DATA_DIR, "ethanol", "ethanol-nmr.magres")))

        json = f1.as_json()

        f2 = MagresFile.load_json(json)

        self.assertEqual(f1.data_dict, f2.data_dict)
Esempio n. 2
0
    def __init__(self, magres_file=None):
        """
      Load new .magres format file into dictionary structure.
    """

        if type(magres_file) == MagresFile:
            self.magres_file = magres_file
        else:
            self.magres_file = MagresFile(magres_file)
Esempio n. 3
0
    def test_nmr_new(self):
        f = MagresFile(open(os.path.join(DATA_DIR, "ethanol", "ethanol-nmr-new.magres")))

        self.assertTrue("calculation" in f.data_dict)
        self.assertTrue("atoms" in f.data_dict)
        self.assertTrue("magres" in f.data_dict)

        self.assertTrue("lattice" in f.data_dict["atoms"])
        self.assertTrue("units" in f.data_dict["atoms"])
        self.assertTrue("atom" in f.data_dict["atoms"])

        self.assertTrue("units" in f.data_dict["magres"])
        self.assertTrue("efg" in f.data_dict["magres"])
        self.assertTrue("ms" in f.data_dict["magres"])

        num_atoms = len(f.data_dict['atoms']['atom'])

        self.assertTrue(len(f.data_dict['magres']['efg']), num_atoms)
        self.assertTrue(len(f.data_dict['magres']['ms']), num_atoms)
Esempio n. 4
0
    def test_full_isc(self):
        magres_files = [
            MagresFile(open(os.path.join(DATA_DIR, "ethanol", f)))
            for f in os.listdir(os.path.join(DATA_DIR, "ethanol"))
            if f.startswith('ethanol-jc')
        ]

        self.assertEqual(len(magres_files), 9)

        atoms = MagresAtoms.load_magres(magres_files)

        for atom in atoms:
            self.assertTrue(hasattr(atom, "isc"))

        self.assertEqual(len(atoms.isc), len(atoms) * (len(atoms) - 1))

        # Check every atom has couplings to every other atom
        for atom in atoms:
            self.assertEqual(len(atom.isc), len(atoms) - 1)
Esempio n. 5
0
#!/usr/bin/python
import sys
from numpy.linalg import det
from magres.format import MagresFile, BadVersion
from magres.atoms import MagresAtoms
from magres.utils import find_all_magres

magres_files = []
for f in find_all_magres(sys.argv[1]):
  try:
    magres_files.append(MagresFile(f))
  except BadVersion:
    continue

s1 = sys.argv[2]
i1 = int(sys.argv[3])
s2 = sys.argv[4]
i2 = int(sys.argv[5])

tensor = 'isc'
if len(sys.argv) >= 7:
  tensor = sys.argv[6]

atoms = MagresAtoms.load_magres(magres_files)

atom1 = atoms.get_species(s1, i1)
atom2 = atoms.get_species(s2, i2)

if tensor == "isc_spin_total":
  K1 = atom1.isc_fc[atom2].K + atom1.isc_spin[atom2].K
  K2 = atom2.isc_fc[atom1].K + atom2.isc_spin[atom1].K
Esempio n. 6
0
    def test_badversion(self):
        with self.assertRaises(BadVersion):
            f = MagresFile(open(os.path.join(DATA_DIR, "noversion.magres")))

        with self.assertRaises(BadVersion):
            f = MagresFile(open(os.path.join(DATA_DIR, "badversion.magres")))
Esempio n. 7
0
#!/usr/bin/python
"""
  Merge several magres files into one.
"""
import sys
from magres.format import MagresFile

if __name__ == "__main__":
    magres_file_paths = sys.argv[1:]

    magres_files = [
        MagresFile(magres_file_path) for magres_file_path in magres_file_paths
    ]

    merged_magres_file = MagresFile.merge(magres_files)

    print str(merged_magres_file)
Esempio n. 8
0
from __future__ import print_function
from magres.format import MagresFile
import sys

magres_file = MagresFile(sys.argv[1])
atoms = magres_file.as_ase()

print(atoms)

for atom in atoms:
    print(atom.symbol, atom.tag, atom.position)
Esempio n. 9
0
class AtomsTest(unittest.TestCase):
    cubic = MagresFile.load_json(
        '{"atoms": {"units": [["atom", "Angstrom"], ["lattice", "Angstrom"]], "lattice": [[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]], "atom": [{"index": 1, "position": [0.0, 0.0, 0.0], "species": "H", "label": "H"}]}}'
    )

    orthorhombic = MagresFile.load_json(
        '{"atoms": {"units": [["atom", "Angstrom"], ["lattice", "Angstrom"]], "lattice": [[[1.0, 0.0, 0.0], [0.0, 2.0, 0.0], [0.0, 0.0, 3.0]]], "atom": [{"index": 1, "position": [0.0, 0.0, 0.0], "species": "H", "label": "H"}]}}'
    )

    species = MagresFile.load_json(
        '{"atoms": {"units": [["atom", "Angstrom"], ["lattice", "Angstrom"]], "lattice": [[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]], "atom": [{"index": 1, "position": [0.0, 0.0, 0.0], "species": "H", "label": "H"},{"index": 1, "position": [0.0, 0.0, 1.0], "species": "C", "label": "C1"},{"index": 1, "position": [0.0, 0.0, 2.0], "species": "C", "label": "C2"}]}}'
    )

    def test_within_cubic(self):
        atoms = MagresAtoms.load_magres(self.cubic)

        self.assertEquals(len(atoms), 1)

        p = atoms[0].position

        self.assertEquals(len(atoms.within(p, 1.0)), 7)

        num_within_3 = 0
        for atom in atoms.within(atoms[0], 5.0):
            if atom.dist(atoms[0]) <= 3.0:
                num_within_3 += 1

        self.assertEquals(len(atoms.within(p, 3.0)), num_within_3)

        self.assertEquals(len(atoms.within(p, 5.0).within(p, 2.0)),
                          len(atoms.within(p, 2.0).within(p, 5.0)))

    def test_within_orthorhombic(self):
        atoms = MagresAtoms.load_magres(self.orthorhombic)

        self.assertEquals(len(atoms), 1)

        p = atoms[0].position

        self.assertEquals(len(atoms.within(p, 1.0)), 3)

        num_within_3 = 0
        for atom in atoms.within(p, 10.0):
            if atom.dist(atoms[0]) <= 3.0:
                num_within_3 += 1

        self.assertEquals(len(atoms.within(p, 3.0)), num_within_3)
        self.assertEquals(len(atoms.within(p, 5.0).within(p, 2.0)),
                          len(atoms.within(p, 2.0).within(p, 5.0)))

    def test_species(self):
        atoms = MagresAtoms.load_magres(self.species)

        self.assertEquals(len(atoms), 3)
        self.assertEquals(len(atoms.species('H')), 1)
        self.assertEquals(len(atoms.species('C')), 2)

    def test_labels(self):
        atoms = MagresAtoms.load_magres(self.species)

        self.assertEquals(len(atoms), 3)
        self.assertEquals(len(atoms.label('H')), 1)
        self.assertEquals(len(atoms.label('C')), 0)
        self.assertEquals(len(atoms.label('C1')), 1)
        self.assertEquals(len(atoms.label('C2')), 1)
Esempio n. 10
0
#!python

"""
  Merge several magres files into one.
"""
import sys
from magres.format import MagresFile

if __name__ == "__main__":
  magres_file_paths = sys.argv[1:]

  magres_files = [MagresFile(magres_file_path) for magres_file_path in magres_file_paths]

  merged_magres_file = MagresFile.merge(magres_files)

  print str(merged_magres_file)
Esempio n. 11
0
import sys
from magres.format import MagresFile
from magres.utils import find_all_magres
from magres.atoms import MagresAtoms

magres_files = [MagresFile(f) for f in find_all_magres(sys.argv[1])]

atoms = MagresAtoms.load_magres(magres_files)

coupling_atom = atoms.get_species('C', 1)

# Set a bunch of arbitrary references for the magnetic shielding
atoms.set_reference('H', 100.0)
atoms.set_reference('C', 55.0)
atoms.set_reference('O', -2.0)

for atom in atoms:
    print atom, atom.efg.Cq, atom.ms.iso, atom.isc[coupling_atom].J_iso