Skip to content

Commit

Permalink
adding qml ensemble code
Browse files Browse the repository at this point in the history
  • Loading branch information
HowarthA committed May 8, 2020
1 parent 0e074b4 commit f45343a
Show file tree
Hide file tree
Showing 5 changed files with 336 additions and 172 deletions.
12 changes: 6 additions & 6 deletions Carbon_plotting.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from matplotlib import pyplot as plt
import numpy as np
import os
from pathlib import Path

def PlotCarbon(NMRData,Isomers,settings):

Expand All @@ -10,19 +11,17 @@ def PlotCarbon(NMRData,Isomers,settings):

exppeaks = NMRData.carbondata["exppeaks"]

NMR_file = str(settings.NMRsource) + "/Carbon"

simulated_ydata = NMRData.carbondata["simulated_ydata"]

removed = NMRData.carbondata["removed"]

if settings.OutputFolder == '':

gdir = str(os.getcwd()) + "/Graphs/" + settings.InputFiles[0] + "/"
gdir = Path.cwd() / "Graphs" / settings.InputFiles[0]

else:

gdir = settings.OutputFolder + "/Graphs/" + settings.InputFiles[0] + "/"
gdir = settings.OutputFolder / "Graphs" / settings.InputFiles[0]

for isomerindex,isomer in enumerate(Isomers):

Expand Down Expand Up @@ -128,10 +127,11 @@ def PlotCarbon(NMRData,Isomers,settings):

plt.plot(xdata, simulated_calc_ydata + 1.1, label='calculated spectrum')


plt.legend()

plt.savefig(gdir + "/Carbon_" + str(isomerindex +1 ) + '.svg',format = "svg", bbox_inches='tight')
f_name = "Carbon_" + str(isomerindex + 1 ) + '.svg'

plt.savefig(gdir / f_name,format = "svg", bbox_inches='tight')

plt.close()

Expand Down
117 changes: 65 additions & 52 deletions NMR.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

from Proton_processing import process_proton
from Carbon_processing import process_carbon
from pathlib import Path

gasConstant = 8.3145
temperature = 298.15
Expand All @@ -31,6 +32,8 @@

class NMRData:
def __init__(self,settings):

self.cwd = Path(os.getcwd())
self.InputPath = settings.NMRsource # Initial structure input file
self.Type = 'desc' # desc or fid, depending on whether the description or raw data used
self.Atoms = [] # Element labels
Expand All @@ -45,52 +48,58 @@ def __init__(self,settings):

print(self.InputPath)

print(self.InputPath.split('.'))
#print(self.InputPath.split('.'))

#quit()

if not os.path.exists(self.InputPath):

print('NMR data path does not exist, quitting...')
if len(self.InputPath) == 0:
print('No NMR Data Added, quitting...')
quit()

if os.path.isdir(self.InputPath):
else:

for ind1 , p in enumerate(self.InputPath):

if p.exists():

if os.path.isdir(str(settings.NMRsource) + "/Proton"):
if p.is_dir():

self.Type = 'fid'
self.Type = 'fid'

self.ProcessProton(settings)
if p.parts[-1] == "Proton" or p.parts[-1] == "proton":

if os.path.isdir(str(settings.NMRsource) + "/Carbon"):
self.ProcessProton(settings,ind1)

self.Type = 'fid'
elif p.parts[-1] == "Carbon" or p.parts[-1] == "carbon":

self.ProcessCarbon(settings)
self.ProcessCarbon(settings,ind1)

if os.path.isfile(str(settings.NMRsource) + "/Proton.dx"):
elif p.parts[-1] == "Proton.dx" or p.parts[-1] == "proton.dx":

self.Type = 'jcamp'
self.Type = 'jcamp'

self.ProcessProton(settings)
self.ProcessProton(settings,ind1)

if os.path.isfile(str(settings.NMRsource) + "/Carbon.dx"):
elif p.parts[-1] == "Carbon.dx" or p.parts[-1] == "carbon.dx":

self.Type = 'jcamp'
self.Type = 'jcamp'

self.ProcessCarbon(settings)
self.ProcessCarbon(settings,ind1)
else:

if os.path.isfile(self.InputPath):
self.Type = 'desc'
self.ExpNMRFromDesc()

self.Type = 'desc'
self.ExpNMRFromDesc()
else:
print('NMR data path does not exist, quitting...')
quit()

def ExpNMRFromDesc(self):

print('Loading NMR data from ' + self.InputPath)

# Reads the experimental NMR data from the file
ExpNMR_file = open(self.InputPath, 'r')
ExpNMR_file = open(self.InputPath[0], 'r')
Cexp = ExpNMR_file.readline()
ExpNMR_file.readline()
Hexp = ExpNMR_file.readline()
Expand Down Expand Up @@ -133,38 +142,41 @@ def ParseExp(self, exp):
return expLabels, expShifts


def ProcessProton(self, settings):
def ProcessProton(self, settings,ind):

if settings.OutputFolder == '':

pdir = str(os.getcwd()) + "/Pickles/"
pdir = self.cwd / "Pickles"

gdir = str(os.getcwd()) + "/Graphs/"
gdir = self.cwd / "Graphs"

else:
pdir = settings.OutputFolder + "/Pickles/"

gdir = settings.OutputFolder + "/Graphs/"
pdir = settings.OutputFolder / "Pickles"

gdir = settings.OutputFolder / "Graphs"

NMR_file = str(settings.NMRsource) + "/Proton"
NMR_file = settings.NMRsource[ind]

if not os.path.exists(gdir):
if not gdir.exists():

os.mkdir(gdir)

os.mkdir(gdir + settings.InputFiles[0] + "/")
os.mkdir(gdir / settings.InputFiles[0] )

if not os.path.exists(gdir + settings.InputFiles[0] + "/"):
if not os.path.exists(gdir / settings.InputFiles[0] ):

os.mkdir(gdir + settings.InputFiles[0] + "/")
os.mkdir(gdir / settings.InputFiles[0] )

if not os.path.exists(pdir):
if not pdir.exists():

os.mkdir(pdir)

if os.path.isfile(pdir + settings.InputFiles[0] + "protondata"):
os.mkdir(pdir / settings.InputFiles[0])

self.protondata = pickle.load(open(pdir + settings.InputFiles[0] + "protondata", "rb"))
if Path(pdir / settings.InputFiles[0] / "protondata").exists():

self.protondata = pickle.load(open(pdir / settings.InputFiles[0] / "protondata", "rb"))

self.Hshifts = self.protondata["exppeaks"]

Expand All @@ -178,48 +190,46 @@ def ProcessProton(self, settings):
"params"], protondata["sim_regions"] \
= process_proton(NMR_file, settings,self.Type)

pickle.dump(protondata, open(pdir + settings.InputFiles[0] + "protondata", "wb"))
pickle.dump(protondata, Path(pdir / settings.InputFiles[0] / "protondata").open(mode = "wb+"))

self.Hshifts = protondata["exppeaks"]

self.protondata = protondata


def ProcessCarbon(self, settings):
def ProcessCarbon(self, settings,ind):

if settings.OutputFolder == '':

pdir = str(os.getcwd()) + "/Pickles/"
pdir = self.cwd / "Pickles"

gdir = str(os.getcwd()) + "/Graphs/"
gdir = self.cwd / "Graphs"

else:
pdir = settings.OutputFolder + "/Pickles/"

gdir = settings.OutputFolder + "/Graphs/"
pdir = settings.OutputFolder / "Pickles"

gdir = settings.OutputFolder / "Graphs"

NMR_file = str(settings.NMRsource) + "/Carbon"
NMR_file = settings.NMRsource[ind]

if not os.path.exists(gdir):
if not gdir.exists():

os.mkdir(gdir)

os.mkdir(gdir + settings.InputFiles[0] + "/")
os.mkdir(gdir / settings.InputFiles[0])

if not os.path.exists(gdir + settings.InputFiles[0] + "/"):
if not Path(gdir / settings.InputFiles[0]).exists():

os.mkdir(gdir + settings.InputFiles[0] + "/")
os.mkdir(gdir / settings.InputFiles[0])

if not os.path.exists(pdir):
if not pdir.exists():

os.mkdir(pdir)

if os.path.isfile(pdir + settings.InputFiles[0] + "carbondata"):
os.mkdir(pdir / settings.InputFiles[0])

self.carbondata = pickle.load(open(pdir + settings.InputFiles[0] + "carbondata", "rb"))
if Path(pdir / settings.InputFiles[0] / "carbondata").exists():

#self.Cshifts = self.carbondata['xdata'][self.carbondata["exppeaks"]]
self.carbondata = pickle.load(open(pdir / settings.InputFiles[0] / "carbondata", "rb"))

self.Cshifts = self.carbondata["exppeaks"]

Expand All @@ -233,11 +243,14 @@ def ProcessCarbon(self, settings):
carbondata["exppeaks"], carbondata["simulated_ydata"], carbondata["removed"] = process_carbon(
NMR_file, settings,self.Type)

pickle.dump(carbondata, open(pdir + settings.InputFiles[0] + "carbondata", "wb"))
pickle.dump(carbondata, Path(pdir / settings.InputFiles[0] / "carbondata").open(mode = "wb+"))

#pickle.dump(a, Path("/Users/Maidenhair/Desktop/text.txt").open(mode="wb+"))

self.carbondata = carbondata
self.Cshifts = carbondata["exppeaks"]


def CalcBoltzmannWeightedShieldings(Isomers):

energies = []
Expand Down
11 changes: 6 additions & 5 deletions Proton_plotting.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from matplotlib import pyplot as plt
import numpy as np
import os
from pathlib import Path

def PlotProton(NMRData,Isomers,settings):

Expand All @@ -22,15 +23,13 @@ def PlotProton(NMRData,Isomers,settings):

sim_regions = NMRData.protondata["sim_regions"]

NMR_file = str(settings.NMRsource) + "/Proton"

if settings.OutputFolder == '':

gdir = str(os.getcwd()) + "/Graphs/" + settings.InputFiles[0] + "/"
gdir = Path.cwd() / "Graphs" / settings.InputFiles[0]

else:

gdir = settings.OutputFolder + "/Graphs/" + settings.InputFiles[0] + "/"
gdir = settings.OutputFolder / "Graphs" / settings.InputFiles[0]

for isomerindex,isomer in enumerate(Isomers):

Expand Down Expand Up @@ -155,7 +154,9 @@ def PlotProton(NMRData,Isomers,settings):

plt.ylim([-0.5, 2.0])

plt.savefig(gdir + "/Proton_" + str(isomerindex + 1) + '.svg',format = "svg", bbox_inches='tight')
f_name = "Proton_" + str(isomerindex + 1) + '.svg'

plt.savefig(gdir /f_name,format = "svg", bbox_inches='tight')

plt.close()

Expand Down
Loading

0 comments on commit f45343a

Please sign in to comment.