From 7a83a6e48a7503848bf1a4abd448f7858dca71e0 Mon Sep 17 00:00:00 2001
From: David Luevano <55825613+luevano@users.noreply.github.com>
Date: Thu, 20 Feb 2020 19:54:46 -0700
Subject: Add basic compound object

---
 ml_exp/__main__.py |  8 --------
 ml_exp/compound.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 8 deletions(-)
 create mode 100644 ml_exp/compound.py

diff --git a/ml_exp/__main__.py b/ml_exp/__main__.py
index 83abb918e..3cb515d85 100644
--- a/ml_exp/__main__.py
+++ b/ml_exp/__main__.py
@@ -20,13 +20,5 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 """
-# from ml_exp.do_ml import do_ml
-# from ml_exp.misc import plot_benchmarks
-# from ml_exp.read_qm7_data import read_qm7_data
-# from ml_exp.adj_matrix import fneig_matrix, adj_matrix
-# from ml_exp.c_matrix import c_matrix
-# from ml_exp.bob import bob
-# from ml_exp.bostuff import bok_cx
-
 if __name__ == '__main__':
     print('Ok!')
diff --git a/ml_exp/compound.py b/ml_exp/compound.py
new file mode 100644
index 000000000..6fd46fc3a
--- /dev/null
+++ b/ml_exp/compound.py
@@ -0,0 +1,51 @@
+"""MIT License
+
+Copyright (c) 2019 David Luevano Alvarado
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+"""
+import numpy as np
+
+
+class Compound:
+    def __init__(self, xyz=None):
+        self.n = None
+        self.atoms = None
+        self.coordinates = None
+
+        if xyz is not None:
+            self.read_xyz(xyz)
+
+    def read_xyz(self, filename):
+        """
+        Reads an xyz file and adds the corresponding data to the Compound.
+        filename: (path to) the xyz file.
+        """
+        with open(filename, 'r') as f:
+            lines = f.readlines()
+
+        self.n = int(lines[0])
+        self.atoms = []
+        self.coordinates = np.empty((self.n, 3), dtype=float)
+
+        for i, atom in enumerate(lines[2:self.n + 2]):
+            atom_d = atom.split()
+
+            self.atoms.append(atom_d[0])
+            self.coordinates[i] = np.asarray(atom_d[1:4], dtype=float)
-- 
cgit v1.2.3-70-g09d2