def sim(inp): if inp.testing(): # if there are no inputs, we're testing wheter the command can run #cpc.util.plugin.testCommand("trjcat -version") #cpc.util.plugin.testCommand("eneconv -version") #cpc.util.plugin.testCommand("gmxdump -version") return pers=cpc.dataflow.Persistence(os.path.join(inp.getPersistentDir(), "persistent.dat")) inputs = ['tpr','plumed'] outputs = [ 'COLVAR', 'bias'] running=0 if(pers.get("running")): running=pers.get("running") it=iterate.iterations(inp, inputs, outputs, pers) out=inp.getFunctionOutput() for i in range(running, it.getN()): instName="replica_%d"%i out.addInstance(instName, "replica") it.connect(out, i, instName) running+=1 pers.set("running", running) pers.write() log.debug("----------------------EXITING THE SIM FUNCTION-------------------") return out
def mdruns(inp): if inp.testing(): # if there are no inputs, we're testing wheter the command can run cpc.util.plugin.testCommand("trjcat -version") cpc.util.plugin.testCommand("eneconv -version") cpc.util.plugin.testCommand("gmxdump -version") return pers=cpc.dataflow.Persistence(os.path.join(inp.getPersistentDir(), "persistent.dat")) inputs = ['tpr','priority','cmdline_options','resources','plumed'] outputs = [ 'conf', 'xtc', 'trr', 'edr','COLVAR', 'HILLS', 'bias'] running=0 if(pers.get("running")): running=pers.get("running") it=iterate.iterations(inp, inputs, outputs, pers) out=inp.getFunctionOutput() for i in range(running, it.getN()): instName="mdrun_%d"%i out.addInstance(instName, "mdrun") it.connect(out, i, instName) running+=1 pers.set("running", running) pers.write() return out
def grompp_mdruns(inp): if inp.testing(): # if there are no inputs, we're testing wheter the command can run cpc.util.plugin.testCommand("grompp -version") return pers=cpc.dataflow.Persistence(os.path.join(inp.getPersistentDir(), "persistent.dat")) grompp_inputs = ['mdp','top','conf', 'ndx', 'settings', 'include' ] mdrun_inputs = [ 'priority', 'cmdline_options', 'resources', 'plumed'] inputs = grompp_inputs + mdrun_inputs grompp_outputs = [ 'tpr' ] mdrun_outputs = [ 'conf', 'xtc', 'trr', 'edr','COLVAR','HILLS','bias' ] outputs = grompp_outputs + mdrun_outputs running=0 if(pers.get("running")): running=pers.get("running") it=iterate.iterations(inp, inputs, outputs, pers) out=inp.getFunctionOutput() for i in range(running, it.getN()): gromppInstName="grompp_%d"%i mdrunInstName="mdrun_%d"%i try: out.addInstance(gromppInstName, "gromacs::grompp") except: log.debug("Error: You must import the gromacs module to use this function.") out.addInstance(mdrunInstName, "mdrun") out.addConnection('%s:out.tpr'%gromppInstName, '%s:in.tpr'%mdrunInstName) it.connectOnly(grompp_inputs, grompp_outputs, out, i, gromppInstName) it.connectOnly(mdrun_inputs, mdrun_outputs, out, i, mdrunInstName) running+=1 pers.set("running", running) pers.write() return out