def analysis_step(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .ncdf files generated in all the instance, generate the .crd file to be used in the next simulation. coco :- Purpose : Runs CoCo analysis on a set of .ncdf files and generates a coordinate file. Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number ''' k1 = Kernel(name="custom.coco") k1.arguments = ["--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints=64".format(Kconfig.num_CUs), "--topfile={0}".format(os.path.basename(Kconfig.top_file)), "--mdfile=*.ncdf", "--output=pdbs", "--atom_selection={0}".format(Kconfig.atom_selection)] #k1.cores = min(Kconfig.num_CUs,RPconfig.PILOTSIZE) k1.cores = 64 k1.uses_mpi = True k1.link_input_data = ['$SHARED/{0}'.format(os.path.basename(Kconfig.top_file))] for iter in range(1,iteration+1): # for i in range(1,Kconfig.num_CUs+1): for i in range(1+(instance-1)*64, instance*64 + 1): k1.link_input_data = k1.link_input_data + ['$SIMULATION_ITERATION_{0}_INSTANCE_{1}/md{0}.ncdf > md_{0}_{1}.ncdf'.format(iter,i)] k1.copy_output_data = list() for i in range(0,64): k1.copy_output_data = k1.copy_output_data + ['pdbs{1}.pdb > $SHARED/pentaopt{0}{2}.pdb'.format(iteration,i,(instance-1)*64+i)] if(iteration%Kconfig.nsave==0): k1.download_output_data = ['coco.log > output/iter{0}/coco.log'.format(iteration,instance)] k2 = Kernel(name="custom.tleap",instance_type='single') k2.arguments = ["--numofsims={0}".format(Kconfig.num_CUs), "--cycle={0}".format(iteration)] k2.link_input_data = ['$SHARED/postexec.py > postexec.py'] for i in range(0,Kconfig.num_CUs): k2.link_input_data = k2.link_input_data + ['$SHARED/pentaopt{0}{1}.pdb > pentaopt{0}{1}.pdb'.format(iteration,i)] return [k1,k2]
def analysis_step(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .xtc files generated in all instances, generate .gro files (as many as the num_CUs) to be used in the next simulations. coco :- Purpose : Runs CoCo analysis on a set of MD trajectory files in this case xtc files and generates several coordinates file to be Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number --atom_selection = Selection of the biological part of the system we want to consider for analysis ''' k1_ana_kernel = Kernel(name="md.coco") k1_ana_kernel.link_input_data = ['$PRE_LOOP/{0}'.format(os.path.basename(Kconfig.top_file)), '$SIMULATION_ITERATION_{0}_INSTANCE_1/md-{1}_0.gro > md-{1}_0.gro'.format(iteration,iteration-1)] for iter in range(1,iteration+1): for i in range(1,Kconfig.num_CUs+1): k1_ana_kernel.link_input_data = k1_ana_kernel.link_input_data + ['$SIMULATION_ITERATION_{0}_INSTANCE_{1}/md-{2}_{3}.xtc > md-{2}_{3}.xtc'.format(iter,i,iter-1,i-1)] k1_ana_kernel.cores = 1 k1_ana_kernel.uses_mpi = False outbase, ext = os.path.basename(Kconfig.output).split('.') #Not sure why this if condition is required #if ext == '': # ext = '.pdb' k1_ana_kernel.arguments = ["--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile=md-{0}_0.gro".format(iteration-1), "--mdfile=*.xtc", "--output={0}_{1}.{2}".format(outbase,iteration-1,ext), "--atom_selection={0}".format(Kconfig.sel)] k1_ana_kernel.copy_output_data = [] for i in range(0,Kconfig.num_CUs): k1_ana_kernel.copy_output_data += ["{0}_{1}{2}.gro > $PRE_LOOP/{0}_{1}{2}.gro".format(outbase,iteration-1,i,ext)] k1_ana_kernel.download_output_data = ["coco.log > output/coco-iter{0}.log".format(iteration-1)] return [k1_ana_kernel]
def analysis_stage(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .ncdf files generated in all the instance, generate the .crd file to be used in the next simulation. coco :- Purpose : Runs CoCo analysis on a set of .ncdf files and generates a coordinate file. Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number ''' k1 = Kernel(name="custom.coco") k1.arguments = ["--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile={0}".format(os.path.basename(Kconfig.ref_file)), "--mdfile=*.nc", "--output=coco.rst7", "--atom_selection={0}".format(Kconfig.atom_selection)] k1.cores = min(Kconfig.num_CUs,RPconfig.PILOTSIZE) k1.uses_mpi = True k1.link_input_data = ['$SHARED/{0}'.format(os.path.basename(Kconfig.ref_file))] for iter in range(1,iteration+1): for i in range(1,Kconfig.num_CUs+1): k1.link_input_data = k1.link_input_data + ['$SIMULATION_ITERATION_{0}_INSTANCE_{1}/md{0}.nc > md_{0}_{1}.nc'.format(iter,i)] k1.copy_output_data = list() for i in range(0,Kconfig.num_CUs): k1.copy_output_data = k1.copy_output_data + ['coco{1}.rst7 > $SHARED/min_{0}_{1}.rst7'.format(iteration,i)] if(iteration%Kconfig.nsave==0): k1.download_output_data = ['coco.log > output/iter{0}/coco.log'.format(iteration,instance)] return k1
def analysis_step(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .ncdf files generated in all the instance, generate the .crd file to be used in the next simulation. coco :- Purpose : Runs CoCo analysis on a set of .ncdf files and generates a coordinate file. Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number ''' k1 = Kernel(name="md.coco") k1.arguments = [ "--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile={0}".format(os.path.basename(Kconfig.top_file)), "--mdfile=*.ncdf", "--output=pdbs", "--atom_selection={0}".format(Kconfig.atom_selection) ] k1.cores = min(Kconfig.num_CUs, RPconfig.PILOTSIZE) k1.uses_mpi = True k1.link_input_data = [ '$PRE_LOOP/{0}'.format(os.path.basename(Kconfig.top_file)) ] for iter in range(1, iteration + 1): for i in range(1, Kconfig.num_CUs + 1): k1.link_input_data = k1.link_input_data + [ '$SIMULATION_ITERATION_{0}_INSTANCE_{1}/md{0}.ncdf > md_{0}_{1}.ncdf' .format(iter, i) ] k1.copy_output_data = list() for i in range(0, Kconfig.num_CUs): k1.copy_output_data = k1.copy_output_data + [ 'pdbs{1}.pdb > $PRE_LOOP/pentaopt{0}{1}.pdb'.format( iteration, i) ] if (iteration % Kconfig.nsave == 0): k1.download_output_data = [ 'coco.log > output/iter{0}/coco.log'.format( iteration, instance) ] k2 = Kernel(name="md.tleap") k2.arguments = [ "--numofsims={0}".format(Kconfig.num_CUs), "--cycle={0}".format(iteration) ] k2.link_input_data = ['$PRE_LOOP/postexec.py > postexec.py'] for i in range(0, Kconfig.num_CUs): k2.link_input_data = k2.link_input_data + [ '$PRE_LOOP/pentaopt{0}{1}.pdb > pentaopt{0}{1}.pdb'.format( iteration, i) ] return [k1, k2]
def analysis_step(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .xtc files generated in all instances, generate .gro files (as many as the num_CUs) to be used in the next simulations. coco :- Purpose : Runs CoCo analysis on a set of MD trajectory files in this case xtc files and generates several coordinates file to be Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number --atom_selection = Selection of the biological part of the system we want to consider for analysis ''' k1_ana_kernel = Kernel(name="md.coco") k1_ana_kernel.link_input_data = [ '$PRE_LOOP/{0}'.format(os.path.basename(Kconfig.top_file)), '$SIMULATION_ITERATION_{0}_INSTANCE_1/md-{1}_0.gro > md-{1}_0.gro'. format(iteration, iteration - 1) ] for iter in range(1, iteration + 1): for i in range(1, Kconfig.num_CUs + 1): k1_ana_kernel.link_input_data = k1_ana_kernel.link_input_data + [ '$SIMULATION_ITERATION_{0}_INSTANCE_{1}/md-{2}_{3}.xtc > md-{2}_{3}.xtc' .format(iter, i, iter - 1, i - 1) ] k1_ana_kernel.cores = 1 k1_ana_kernel.uses_mpi = False outbase, ext = os.path.basename(Kconfig.output).split('.') #Not sure why this if condition is required #if ext == '': # ext = '.pdb' k1_ana_kernel.arguments = [ "--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile=md-{0}_0.gro".format(iteration - 1), "--mdfile=*.xtc", "--output={0}_{1}.{2}".format(outbase, iteration - 1, ext), "--atom_selection={0}".format(Kconfig.sel) ] k1_ana_kernel.copy_output_data = [] for i in range(0, Kconfig.num_CUs): k1_ana_kernel.copy_output_data += [ "{0}_{1}{2}.gro > $PRE_LOOP/{0}_{1}{2}.gro".format( outbase, iteration - 1, i, ext) ] k1_ana_kernel.download_output_data = [ "coco.log > output/coco-iter{0}.log".format(iteration - 1) ] return [k1_ana_kernel]
def analysis_stage(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iterMod. Using the .xtc files generated in all instances, generate .gro files (as many as the num_CUs) to be used in the next simulations. coco :- Purpose : Runs CoCo analysis on a set of MD trajectory files in this case xtc files and generates several coordinates file to be Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iterMod number --atom_selection = Selection of the biological part of the system we want to consider for analysis ''' #shareDir="$SHARED" #shareDir="/work/fbettenc/radical.pilot.sandbox/rp.session.js-17-187.jetstream-cloud.org.hal9000.017508.0005-pilot.0000/staging_area" shareDir = "/work/fbettenc/p14b01_pool/staging_area" prev_sim_last_iter_to_use = 48 iterMod = iteration + prev_sim_last_iter_to_use k1_ana_kernel = Kernel(name="custom.coco") outbase, ext = os.path.basename(Kconfig.output).split('.') if ext == '': ext = '.pdb' k1_ana_kernel.arguments = [ "--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile=md-{0}_0.gro".format(iterMod - 1), "--mdfile=*.xtc", "--output={0}_{1}_.gro".format(outbase, iterMod - 1), "--atom_selection={0}".format(Kconfig.sel) ] # k1_ana_kernel.cores = min(Kconfig.num_CUs,RPconfig.PILOTSIZE) k1_ana_kernel.cores = min( Kconfig.num_CUs * (iterMod + 1), RPconfig.PILOTSIZE ) # set to iterMod+1 bec at first iter coco analysis of k8 output so coco is iter ahead sort of print " " print "iter,iterMod,AnaCUcores = ", iteration, ", ", iterMod, ", ", k1_ana_kernel.cores print " " k1_ana_kernel.uses_mpi = True k1_ana_kernel.link_input_data = [ shareDir + '/md-{1}_0.gro > md-{1}_0.gro'.format(iterMod, iterMod - 1) ] for iter in range(1, iterMod + 1): for i in range(1, Kconfig.num_CUs + 1): k1_ana_kernel.link_input_data = k1_ana_kernel.link_input_data + [ shareDir + '/md-{2}_{3}.xtc > md-{2}_{3}.xtc'.format( iter, i, iter - 1, i - 1) ] k1_ana_kernel.copy_output_data = [] for i in range(0, Kconfig.num_CUs): #k1_ana_kernel.copy_output_data += ["{0}_{1}_{2}.gro > $SHARED/{0}_{1}_{2}.gro".format(outbase,iterMod-1,i,ext)] k1_ana_kernel.copy_output_data += [ "{0}_{1}_{2}.gro > ".format(outbase, iterMod - 1, i, ext) + shareDir + "/{0}_{1}_{2}.gro".format(outbase, iterMod - 1, i, ext) ] k1_ana_kernel.download_output_data = [ "coco.log > output/coco-iter{0}.log".format(iterMod - 1) ] return [k1_ana_kernel]
def analysis_stage(self, iteration, instance): ''' function : Perform CoCo Analysis on the output of the simulation from the current iteration. Using the .xtc files generated in all instances, generate .gro files (as many as the num_CUs) to be used in the next simulations. coco :- Purpose : Runs CoCo analysis on a set of MD trajectory files in this case xtc files and generates several coordinates file to be used in next cycle Arguments : --grid = Number of points along each dimension of the CoCo histogram --dims = The number of projections to consider from the input pcz file --frontpoints = Number of CUs --topfile = Topology filename --mdfile = MD Input filename --output = Output filename --cycle = Current iteration number --atom_selection = Selection of the biological part of the system we want to consider for analysis ''' k1 = Kernel(name="custom.coco") iter1 = iteration - 1 outbase, ext = opb(Kconfig.output).split('.') if ext == '': ext = '.pdb' k1.arguments = [ "--grid={0}".format(Kconfig.grid), "--dims={0}".format(Kconfig.dims), "--frontpoints={0}".format(Kconfig.num_CUs), "--topfile=md-{0}_0.gro".format(iter1), "--mdfile=*.xtc", "--output={0}_{1}.gro".format(outbase, iter1), "--atom_selection={0}".format(Kconfig.sel) ] k1.cores = min(Kconfig.num_CUs, RPconfig.PILOTSIZE) k1.uses_mpi = True lind = '$SHARED/md-{0}_0.gro > md-{0}_0.gro' k1.link_input_data = [lind.format(iter1)] lind = '$SHARED/md-{0}_{1}.xtc > md-{0}_{1}.xtc' for iter in range(iteration): for i in range(Kconfig.num_CUs): k1.link_input_data += [lind.format(iter, i)] k1.copy_output_data = [] cout = '{0}_{1}{2}.gro > $SHARED/{0}_{1}{2}.gro' for i in range(Kconfig.num_CUs): k1.copy_output_data += [cout.format(outbase, iter1, i)] dod = "coco.log > output/coco-iter{0}.log" k1.download_output_data = [dod.format(iter1)] return [k1]