Ejemplo n.º 1
0
    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 = ""
Ejemplo n.º 2
0
    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"
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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 = ""
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
 def __init__(self, inputFile, path, topologyFile, mdDir):
     JobNode.__init__(self, inputFile, path)
     self.topology = topologyFile
     self.mdDir = mdDir
Ejemplo n.º 7
0
 def __init__(self, inputFile, path, pmfOutputs):
     JobNode.__init__(self,inputFile, path)
     self.pmfOutputs = pmfOutputs
     self.time = "00:20:00"
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
 def __init__(self, inputFile, path):
     JobNode.__init__(self,inputFile, path)
Ejemplo n.º 10
0
 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"
Ejemplo n.º 11
0
 def __init__(self, inputFile, path, whamLog):
     JobNode.__init__(self, inputFile, path)
     self.whamLog = abspath(whamLog)
     self.scanOk = True