def __init__(self, inputFile, path): JobNode.__init__(self, inputFile, path) self.logFile = "a.log" self.verification = [] self.templateKey = "" self.additionalKeywords = {} self.templateDict = { "QMMM_opt_mopac": ["QMMM_opt.f90", "panadero.f90"], "QMMM_opt_mopac_no_hess": ["QMMM_opt_noHess.f90"], "QMMM_opt_mopac_no_hess_restr": ["QMMM_opt_noHess_restr.f90"], "QMMM_irc_mopac": ["IRC.f90", "mep_project.f90"], "QMMM_scan1D_mopac": ["scan1D.f90"], "QMMM_pmf": ["pmf.f90"], "QMMM_sp": ["SP.f90"], "QMMM_opt_gaussian": [ "QMMM_opt_Gauss.f90", "panadero.f90", "keep_log", "with_gaussian.f90" ], "QMMM_irc_gaussian": [ "IRC_Gauss.f90", "mep_project.f90", "keep_log", "with_gaussian.f90" ], "QMMM_sp_gaussian": ["SP_Gauss.f90", "keep_log", "with_gaussian.f90"] } self.noOfExcpectedImaginaryFrequetions = -1 self.processors = 1 self.time = "1:00:00" self.partition = "plgrid-short" self.getCoordsFromParent = True self.readResults = False self.results = [] self.software = "fDynamo" self.structure2dump = "" self.forceField = "" self.flexiblePart = "" self.sequence = "" self.qmSele = "" self.fDynamoPath = "" self.charge = None self.method = "" self.coordsIn = "" self.coordsOut = "" self.anotherCoordsSource = "" self.copyHessian = False self.readInitialScanCoord = False self.measureRCinOutput = False self.QMenergy = None self.PotentialEnergy = None self.moduleAddLines = ""
def __init__(self, inputFile, path, topology, coordinates): JobNode.__init__(self, inputFile, path) self.topology = topology self.coordsIn = coordinates self.partition = "plgrid-short" self.time = "0:15:00" self.coordsOut = "test.crd" self.flexiblePart = "in20.f90" self.sequence = "test.seq"
def buildGraph( rc, definedAtoms, dir2start, dynamoData, dynamoFilesDir, tsNo ): jobGraph = nx.DiGraph() dynamoData["filesDir"] = dynamoFilesDir newNode = JobNode(None, dir2start) newNode.status = "finished" jobGraph.add_node(dir2start, data = newNode) bestStr = findNstrClosest2rc( rc, tsNo, definedAtoms ) for i, structure in enumerate( bestStr ): print("Structure for TS search ", structure.dcd, structure.frame) newDir = join( dir2start, "TS_"+str(i) ) addTSsearch(jobGraph, dir2start, newDir, dynamoData, structure, i ) return jobGraph
def __init__(self, inputFile, path): JobNode.__init__(self, inputFile, path) self.routeSection = None self.additionalSection = None self.skipParentAdditionalSection = True self.logFile = self.inputFile.split(".")[0] + ".log" self.verification = None self.noOfExcpectedImaginaryFrequetions = -1 self.processors = 24 self.time = "72:00:00" self.partition = "plgrid" self.chk = "checkp.chk" self.getCoordsFromParent = True self.readResults = False self.copyChk = False self.results = [] self.software = "Gaussian" self.structure2dump = ""
def buildGraph(rc, definedAtoms, dir2start, dynamoData, dynamoFilesDir, tsNo, method, basis): jobGraph = nx.DiGraph() dynamoData["filesDir"] = dynamoFilesDir # dynamoData["fDynamoPath"] = "/net/people/plgglanow/fortranPackages/AMBER-g09/AMBER-dynamo/makefile" gaussianFlexibleSele = rewriteFlexibleSeleFile( join(dynamoFilesDir, dynamoData["flexiblePart"])) newNode = JobNode(None, dir2start) newNode.status = "finished" jobGraph.add_node(dir2start, data=newNode) bestStr = findNstrClosest2rc(rc, tsNo, definedAtoms) for i, structure in enumerate(bestStr): print("Structure for TS search ", structure.dcd, structure.frame) newDir = join(dir2start, "TS_" + str(i)) addTSsearch(jobGraph, dir2start, newDir, dynamoData, structure, i, method, basis, gaussianFlexibleSele) return jobGraph
def __init__(self, inputFile, path, topologyFile, mdDir): JobNode.__init__(self, inputFile, path) self.topology = topologyFile self.mdDir = mdDir
def __init__(self, inputFile, path, pmfOutputs): JobNode.__init__(self,inputFile, path) self.pmfOutputs = pmfOutputs self.time = "00:20:00"
def generateGraph(topologyFile, forcefield, compileScript, coordinates): jobGraph = nx.DiGraph() rootDir = getcwd() notSolventNo = getNumberOfNotSolventRes(topologyFile) data = parseFDynamoCompileScript(compileScript) newNode = JobNode(None, rootDir) newNode.status = "finished" jobGraph.add_node(rootDir, data = newNode) for crd in coordinates: coolDirName = join( rootDir, basename(crd).replace(".", "_") ) makedirs(coolDirName) copyfile( join( rootDir, basename(topologyFile) ), join(coolDirName, basename(topologyFile)) ) move( join( rootDir, basename(crd) ), join(coolDirName, basename(crd)) ) coolNode = AmberNode("amber.slurm", coolDirName, coolDirName, basename(topologyFile), basename(crd)) coolNode.runType = "standardCooling" coolNode.time = "1:00:00" coolNode.partition = "plgrid-short" coolNode.processors = 8 jobGraph.add_node( coolDirName, data = coolNode ) jobGraph.add_edge(rootDir, coolDirName) optimDir = join( coolDirName, "MM_opt") optimNode = AmberNode("amber.slurm", optimDir, optimDir, topologyFile) optimNode.NoSolventResidues = notSolventNo optimNode.runType = "standardOptimization" optimNode.time = "1:00:00" optimNode.partition = "plgrid-short" jobGraph.add_node( optimDir, data = optimNode ) jobGraph.add_edge( coolDirName, optimDir) qmmmSetupDirName = join( coolDirName, "QMMM_setup") qmmmSetupNode = QMMMsetupNode("qmmmSetup.slurm", qmmmSetupDirName, basename(topologyFile), "cooled.nc") jobGraph.add_node( qmmmSetupDirName, data = qmmmSetupNode ) jobGraph.add_edge( optimDir, qmmmSetupDirName) qmmmOptDir = join(qmmmSetupDirName, "opt") makedirs(qmmmOptDir) copyfile( join( rootDir, basename(forcefield) ), join(qmmmOptDir, basename(forcefield)) ) definedAtoms = data["definedAtoms"] constraints = data["constraints"] qmmmOptNode = FDynamoNode(data["inputFile"], qmmmOptDir) qmmmOptNode.coordsIn = "coordsIn.crd" qmmmOptNode.coordsOut = "coordsOut.crd" qmmmOptNode.verification = [ "Opt" ] qmmmOptNode.slurmFile = None qmmmOptNode.autorestart = False qmmmOptNode.forceField = data["forceField"] qmmmOptNode.flexiblePart = data["flexiblePart"] qmmmOptNode.sequence = data["sequence"] qmmmOptNode.qmSele = data["qmSele"] qmmmOptNode.templateKey = "QMMM_opt_mopac_no_hess" qmmmOptNode.fDynamoPath = data["fDynamoPath"] qmmmOptNode.charge = data["charge"] qmmmOptNode.method = data["method"] jobGraph.add_node( qmmmOptDir, data = qmmmOptNode ) jobGraph.add_edge( qmmmSetupDirName, qmmmOptDir) qmmmScanDir = join(qmmmSetupDirName, "scan") qmmmScanNode = FDynamoNode("scan.f90", qmmmScanDir) qmmmScanNode.verification = [ "scan1D" ] qmmmScanNode.readInitialScanCoord = True qmmmScanNode.templateKey = "QMMM_scan1D_mopac" qmmmScanNode.additionalKeywords = { "scanDir" : "+", "coordScanStart" : "" , "iterNo" : "80", "definedAtoms" : definedAtoms, "constraints" : constraints } jobGraph.add_node( qmmmScanDir, data = qmmmScanNode ) jobGraph.add_edge( qmmmOptDir, qmmmScanDir) qmmmTSoptDir = join(qmmmSetupDirName, "ts_search") qmmmTSoptNode = FDynamoNode("tsSearch.f90", qmmmTSoptDir) qmmmTSoptNode.verification = ["Opt" , "Freq"] qmmmTSoptNode.noOfExcpectedImaginaryFrequetions = 1 qmmmTSoptNode.templateKey = "QMMM_opt_mopac" qmmmTSoptNode.additionalKeywords = { "ts_search" : "true" } qmmmTSoptNode.coordsIn = "coordsStart.crd" qmmmTSoptNode.coordsOut = "coordsDone.crd" jobGraph.add_node( qmmmTSoptDir, data = qmmmTSoptNode ) jobGraph.add_edge( qmmmScanDir, qmmmTSoptDir) return jobGraph
def __init__(self, inputFile, path): JobNode.__init__(self,inputFile, path)
def __init__(self, inputFile, path, templateXyz): JobNode.__init__(self,inputFile, path) self.templateAbs = abspath(templateXyz) self.templateBase = join(self.path, "reindexed_" + basename(self.templateAbs) ) self.time = "0:10:00"
def __init__(self, inputFile, path, whamLog): JobNode.__init__(self, inputFile, path) self.whamLog = abspath(whamLog) self.scanOk = True