#!/usr/bin/env python from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ParallelClusterOETrajCube, ParallelMakeClusterTrajOEMols job = WorkFloe("Testing Traj OEMol Clustering on a conformer") job.description = """ Testing Ligand Clustering Floe on a conformer # Ex. python floes/ConfBasedTrajClustering.py --in STMD_TrajOEMol.oedb --out STMD_LigClus.oedb # Parameters: ----------- in (.oedb file): file of the MD results with Traj OEMols # Outputs: -------- ofs (.oedb file): file of the MD results with Traj OEMol Clustering on a conformer. """ # job.uuid = "7cacc2af-cae7-4dc7-8956-fcf539861e3d" ifs = DatasetReaderCube("ifs") ifs.promote_parameter("data_in", promoted_name="in", title="System Input OERecord", description="OERecord file name") clusCube = ParallelClusterOETrajCube("ClusterOETrajCube")
#!/usr/bin/env python from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_trajProcessing import ParallelTrajInteractionEnergyCube job = WorkFloe("Testing Traj Protein-Ligand Interaction Energies") job.description = """ Testing Protein-Ligand Interaction Energies Floe # Ex. python floes/up.py --in STMD_TrajOEMol.oedb --out STMD_TrajIntE.oedb # Parameters: ----------- in (.oedb file): file of the MD results with Traj OEMols # Outputs: -------- ofs (.oedb file): file of the MD results with Interaction Energy results. """ job.uuid = "a73059bd-25e6-47f3-b2d2-56474c439417" ifs = DatasetReaderCube("ifs") ifs.promote_parameter("data_in", promoted_name="in",
# or its use. from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.ComplexPrep.cubes import ComplexPrepCube from MDOrion.System.cubes import MDComponentCube from MDOrion.LigPrep.cubes import (ParallelLigandChargeCube, LigandSetting) from MDOrion.System.cubes import (IDSettingCube, CollectionSetting, ParallelRecordSizeCheck) job = WorkFloe('PL Complex formation for Short Trajectory MD', title='PL Complex formation for Short Trajectory MD') job.description = """ PL Complex formation for the Short Trajectory MD (STMD) protocol based on a prepared protein and a set of posed and prepared ligands as input. The ligands need to have coordinates, all atoms, and correct chemistry. Each ligand can have multiple conformers but each conformer will be run separately as a different ligand. The protein needs to be prepared to MD standards: protein chains must be capped, all atoms in protein residues (including hydrogens) must be present, and missing protein loops resolved. Crystallographic internal waters should be retained where possible. The parametrization of some common nonstandard residues is partially supported. Given the inputs of the protein and posed ligands, the complex is formed with each ligand/conformer separately.
#!/usr/bin/env python from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_trajProcessing import ( ParallelTrajToOEMolCube, ParallelTrajInteractionEnergyCube, ParallelTrajPBSACube) from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ( ParallelClusterOETrajCube, ParallelMDTrajAnalysisClusterReport, MDFloeReportCube) job = WorkFloe("Analysing Trajectory from Short Trajectory MD") job.description = """ Analyse the trajectory from Short Trajectory MD in terms of interactions between the ligand and the active site and in terms of ligand RMSD after fitting the trajectory based on active site C_alphas. Required Input Parameters: -------------------------- in: Collection of OERecords (one per ligand) of Short Trajectory MD results. Outputs: -------- floe report: html page of the Analysis for each ligand. out (.oedb file): file of the Analysis results for all ligands. """
# THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ExtractMDDataCube from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from os import path job = WorkFloe("Extract Short Trajectory MD Results for Download", title="Extract Short Trajectory MD Results for Download") job.description = open(path.join(path.dirname(__file__), 'MDData_desc.rst'), 'r').read() job.classification = [['MD Data']] job.uuid = "6665ca20-6014-4f3b-8d02-4b5d15b75ee3" job.tags = [tag for lists in job.classification for tag in lists] ifs = DatasetReaderCube("SystemReader", title="System Reader") ifs.promote_parameter( "data_in", promoted_name="system", title='STMDA Input File', description= "The Dataset produced by the Short Trajectory MD with Analysis floe")
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolIStreamCube, OEMolOStreamCube from OpenMMCubes.cubes import OpenMMminimizeCube job = WorkFloe("MDminimize") job.description = """ Minimize an OpenMM-ready solvated complex Ex: python floes/openmm_prepMDminimize.py --complex complex.oeb --ofs-data_out min.oeb --steps 1000` Parameters: ----------- complex (file): OEB file of the prepared protein:ligand complex Optional: -------- steps (int): Number of MD steps to minimize the system. If 0 until convergence will be reached Outputs: -------- ofs: Outputs the minimized system """ job.classification = [['Simulation']] job.tags = [tag for lists in job.classification for tag in lists] ifs = OEMolIStreamCube("complex", title="Complex Reader") ifs.promote_parameter("data_in", promoted_name="complex", title='Complex Input File',
print('host:', socket.gethostname()) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s' + socket.gethostname() + '%(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') from torsion.cubes import ParallelPsi4EnergyCalculation, HiddenParamParallelPsi4EnergyCalculation from torsion.cubes import ParallelGenerateStartingConfs, ParallelGenerateTorsionalConfs from torsion.cubes import FilterBrI from floe.api import WorkFloe from floe.api import ParallelCubeGroup from floe.api import OEMolOStreamCube from floe.api import OEMolIStreamCube from floe import constants # Declare Floe, add metadata for UI job = WorkFloe('Filtered Massively Parallel 2-stage Dihedral Scan of Torsions') job.description = """ Filtered Calculate the Energy Profile associated with a Dihedral Scan in a massively parallel manner. """ job.classification = [["Torsion"]] # Declare Cubes ifs = OEMolIStreamCube('ifs') ifs.promote_parameter('data_in', promoted_name='ifs') ifs.parameter_overrides["download_format"] = {"hidden": True} ifs.parameter_overrides["limit"] = {"hidden": True} element_filter = FilterBrI('element_filter') # Conformer generation confgenCube = ParallelGenerateStartingConfs('confgenCube')
import os import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s' + os.getenv('HOSTNAME') + '%(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') from floe.api import WorkFloe from cuberecord import DatasetReaderCube, DatasetWriterCube from torsion.cubes import GenerateFragments, \ GenerateStartingConfs, \ GenerateTorsionalConfs, \ ParallelPsi4EnergyCalculation, \ ProfileAssembler # Declare Floe, add metadata for UI job = WorkFloe('Torsional Strain Energy') job.description = """ Calculate torsional strain energy. """ job.classification = [["Torsional Strain"]] # Declare cubes ifs = DatasetReaderCube('ifs') fraggenCube = GenerateFragments('fragment_generation') fraggen_failure = DatasetWriterCube('fraggen_failure') confgenCube = GenerateStartingConfs('starting_conf_gen') confgen_failure = DatasetWriterCube('confgen_failure') torsgenCube = GenerateTorsionalConfs('torsional_conf_gen') assembler = ProfileAssembler('assembler') # geometry optimization using smaller basis set (e.g. minix)
#!/usr/bin/env python from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_trajProcessing import ( ConformerGatheringData, ParallelConcatenateTrajMMPBSACube) from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ( ParallelClusterOETrajCube, ParallelMakeClusterTrajOEMols) job = WorkFloe("Testing Traj OEMol Clustering on a ligand") job.description = """ Testing Ligand Clustering Floe on a conformer # Ex. python floes/LigBasedTrajClustering.py --in STMD_TrajOEMol.oedb --out STMD_LigClus.oedb # Parameters: ----------- in (.oedb file): file of the MD results with Traj OEMols # Outputs: -------- ofs (.oedb file): file of the MD results with Traj OEMol Clustering on a conformer. """ # job.uuid = "7cacc2af-cae7-4dc7-8956-fcf539861e3d" ifs = DatasetReaderCube("ifs")
# exclusive risk. Sample Code may require Customer to have a then # current license or subscription to the applicable OpenEye offering. # THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from MDOrion.MDEngines.cubes import ParallelMDNvtCube from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube job = WorkFloe("NVT Simulation", title="NVT Simulation") job.description = """ NVT simulation of an OpenMM-ready System Ex: python floes/openmm_MDnvt.py --system complex.oeb --ofs-data_out nvt.oeb --nanoseconds 0.01 Parameters: ----------- complex (file): OEB file of the prepared system Optional: -------- picosec (float): Number of picoseconds to warm up the complex temperature (decimal): target final temperature after warming
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolOStreamCube from OpenMMCubes.cubes import OpenMMminimizeCube, OpenMMnvtCube, OpenMMnptCube from ComplexPrepCubes.cubes import HydrationCube, ComplexPrep, ForceFieldPrep from ComplexPrepCubes.port import ProteinReader from LigPrepCubes.ports import LigandReader from LigPrepCubes.cubes import LigChargeCube job = WorkFloe('Preparation MD') job.description = """ Set up an OpenMM complex then minimize, warm up and equilibrate a system by using three equilibration stages Ex: python floes/openmm_MDprep.py --ligands ligands.oeb --protein protein.oeb --ofs-data_out prep.oeb Parameters: ----------- ligands (file): oeb file of ligand posed in the protein active site. protein (file): oeb file of the protein structure, assumed to be pre-prepared Optionals: ----------- Outputs: -------- ofs: Outputs a ready system to MD production run """ job.classification = [['Complex Setup', 'FrosstMD']] job.tags = [tag for lists in job.classification for tag in lists]
# exclusive risk. Sample Code may require Customer to have a then # current license or subscription to the applicable OpenEye offering. # THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from MDOrion.MDEngines.cubes import ParallelMDMinimizeCube from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube job = WorkFloe("Minimize", title="Minimize") job.description = """ Minimize an OpenMM-ready solvated complex Ex: python floes/openmm_prepMDminimize.py --system complex.oeb --ofs-data_out min.oeb --steps 1000` Parameters: ----------- complex (file): OEB file of the prepared system Optional: -------- steps (int): Number of MD steps to minimize the system. If 0 until convergence will be reached Outputs:
#!/usr/bin/env python from cubes.input_cubes import IndexInputCube, OEMolTriggeredIStreamCube from cubes.compute_cubes import (AccuMolList, ParallelFastFPRanking, IndexGenerator, PrepareRanking, ParallelFastFPInsertKA, AccumulateRankings, AnalyseRankings) from cubes.output_cubes import TextRankingOutputCube, PlotResults, ResultsOutputCube from floe.api import WorkFloe, CubeGroup from floe.api import OEMolOStreamCube from floe.api import OEMolIStreamCube # Declare Floe, add metadata for UI job = WorkFloe('VS Floe') job.description = """ Read an index text file and write the indices in an other file """ job.classification = [["Virtual Screening", "Create Ranking"]] # Declare Cubes act_reader = OEMolIStreamCube('act_reader') act_reader.promote_parameter('data_in', promoted_name='act_db') #index_reader = IndexInputCube('index_reader') #index_reader.promote_parameter('data_in', promoted_name='index_log') index_generator = IndexGenerator('index generator') accu_act = AccuMolList('accumulate actives') #calc_fp = CalculateFPCube('calculate fingerprints') prep_sim_calc = PrepareRanking('prepare similarity calculation') prep_sim_calc.promote_parameter('method', promoted_name='method')
import os import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s' + os.getenv('HOSTNAME') + '%(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') from torsion.cubes import ParallelPsi4EnergyCalculation, SerialGenerateStartingConfs, SerialGenerateTorsionalConfs from floe.api import WorkFloe from floe.api import OEMolOStreamCube from floe.api import OEMolIStreamCube # Declare Floe, add metadata for UI job = WorkFloe('Massively Parallel Dihedral Scan of Torsions') job.description = """ Calculate the Energy Profile associated with a Dihedral Scan in a massively parallel manner. """ job.classification = [["Torsion"]] # Declare Cubes ifs = OEMolIStreamCube('ifs') ifs.promote_parameter('data_in', promoted_name='ifs') confgenCube = SerialGenerateStartingConfs('starting_conf_gen') confgenCube.promote_parameter( 'max_confs', title='Maximum Alternate Starting Conformers', description= 'Maximum number of starting conformations to use in QM torsion driving experiment. ' + 'NOTE: If you do not want to generate starting conformations, set this to 1.' )
# exclusive risk. Sample Code may require Customer to have a then # current license or subscription to the applicable OpenEye offering. # THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from MDOrion.MDEngines.cubes import ParallelMDNptCube from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube job = WorkFloe("NPT Simulation", title="NPT Simulation") job.description = """ NPT simulation of an OpenMM-ready System Ex: python floes/openmm_MDnpt.py --system complex.oeb --nanoseconds 0.01 Parameters: ----------- complex (file): OEB file of the prepared system Optional: -------- picosec (float): Number of picoseconds to warm up the complex temperature (decimal): target final temperature in K pressure (decimal): target final pressure in atm
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolOStreamCube from OpenMMCubes.cubes import OpenMMminimizeCube, OpenMMnvtCube, OpenMMnptCube from ComplexPrepCubes.cubes import HydrationCube, ComplexPrep, ForceFieldPrep, SolvationCube from ComplexPrepCubes.port import ProteinReader from LigPrepCubes.ports import LigandReader from LigPrepCubes.cubes import LigChargeCube job = WorkFloe('Merk Frosst MD Protocol') job.description = """ Set up an OpenMM complex then minimize, warm up and equilibrate a system by using three equilibration stages Ex: python floes/openmm_MDprep.py --ligands ligands.oeb --protein protein.oeb --ofs-data_out prep.oeb Parameters: ----------- ligands (file): oeb file of ligand posed in the protein active site. protein (file): oeb file of the protein structure, assumed to be pre-prepared Optionals: ----------- Outputs: -------- ofs: Outputs a ready system to MD production run """ job.classification = [['Complex Setup', 'FrosstMD']] job.tags = [tag for lists in job.classification for tag in lists]
from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.System.cubes import MDComponentCube from MDOrion.ComplexPrep.cubes import ComplexPrepCube from MDOrion.System.cubes import ParallelSolvationCube from MDOrion.ForceField.cubes import ParallelForceFieldCube from MDOrion.LigPrep.cubes import (ParallelLigandChargeCube, LigandSetting) from MDOrion.System.cubes import (IDSettingCube, CollectionSetting, ParallelRecordSizeCheck) job = WorkFloe('Complex prep for Short Trajectory MD', title='Complex prep for Short Trajectory MD') job.description = """ The prep steps for the Short Trajectory MD (STMD) protocol based on a prepared protein and a set of posed and prepared ligands as input. The ligands need to have coordinates, all atoms, and correct chemistry. Each ligand can have multiple conformers but each conformer will be run separately as a different ligand. The protein needs to be prepared to MD standards: protein chains must be capped, all atoms in protein residues (including hydrogens) must be present, and missing protein loops resolved. Crystallographic internal waters should be retained where possible. The parametrization of some common nonstandard residues is partially supported. Given the inputs of the protein and posed ligands, the complex is formed with each ligand/conformer separately, and the complex is solvated and parametrized according to the selected force fields.
from __future__ import unicode_literals """ Written by John D. Chodera """ from floe.api import WorkFloe, OEMolIStreamCube, OEMolOStreamCube, FileOutputCube, DataSetInputParameter, FileInputCube from YankCubes.cubes import YankBindingCube """ Testing via the command line: python floes/yank_binding.py --receptor examples/data/T4-protein.pdb --molecules examples/data/p-xylene.mol2 --success success.sdf --failure failure.sdf --simulation_time 0.0001 --nsteps_per_iteration 5 --minimize 0 """ job = WorkFloe("YANK small molecule absolute binding free energies") job.description = """ # Compute small molecule absolute binding free energies using YANK. This Floe processes the provided molecules, computes free energies of binding to a specified receptor, and appends the following SDData properties to the original molecules: * Absolute binding free energy in kcal/mol: `DeltaG_yank_binding` * Standard error estimate in binding free energy estimate, in kcal/mol: `dDeltaG_yank_binding` *IMPORTANT:* The molecules MUST be charged before feeding them into this workflow. The following advanced options are available: * temperature (`float`): Temperature in Kelvin (default: `300.0`) * pressure (`float`): Pressure in atmospheres (default: `1.0`) * simulation_time (`float`): Simulation time in ns/replica (default: `0.010`)
from MDOrion.System.cubes import (ParallelRecordSizeCheck) from MDOrion.TrjAnalysis.cubes_trajProcessing import ( ParallelTrajToOEMolCube, ParallelTrajInteractionEnergyCube, ParallelTrajPBSACube, ConformerGatheringData, ParallelConfTrajsToLigTraj, ParallelConcatenateTrajMMPBSACube) from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ( ParallelClusterOETrajCube, ParallelMakeClusterTrajOEMols, ParallelMDTrajAnalysisClusterReport, ParallelClusterPopAnalysis, ParallelTrajAnalysisReportDataset, MDFloeReportCube) from MDOrion.System.cubes import CollectionSetting job = WorkFloe('Analyze Protein-Ligand MD', title='Analyze Protein-Ligand MD') job.description = open( path.join(path.dirname(__file__), 'AnalyzePLMD_desc.rst'), 'r').read() job.classification = [['Specialized MD']] job.uuid = "7438db4d-30b1-478c-afc0-e921f0336c78" job.tags = [tag for lists in job.classification for tag in lists] # Ligand setting iMDInput = DatasetReaderCube("MDInputReader", title="MD Input Reader") iMDInput.promote_parameter("data_in", promoted_name="in", title="MD Input Dataset", description="MD Input Dataset")
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolOStreamCube from ComplexPrepCubes.cubes import SolvationCube, ForceFieldPrep from LigPrepCubes.cubes import LigChargeCube from LigPrepCubes.ports import LigandReader from YankCubes.cubes import YankSolvationFECube from OpenMMCubes.cubes import OpenMMminimizeCube, OpenMMnvtCube, OpenMMnptCube job = WorkFloe("SolvationFreeEnergy") job.description = """ Solvation Free Energy Calculation of small molecules Ex. python floes/solvation_free_energy --ligands ligands.oeb --ofs-data_out fe.oeb Parameters: ----------- ligands (file): OEB file of the prepared ligands Outputs: -------- ofs: Output file """ job.classification = [['Simulation']] job.tags = [tag for lists in job.classification for tag in lists] # Ligand setting iligs = LigandReader("Ligands", title="Ligand Reader") iligs.promote_parameter("data_in",
#!/usr/bin/env python from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ( ParallelClusterOETrajCube, ParallelMDTrajAnalysisClusterReport, MDFloeReportCube) job = WorkFloe("Analysing Trajectory from Short Trajectory MD") job.description = """ Cluster the trajectory from Short Trajectory MD in terms of ligand RMSD after fitting the trajectory based on active site C_alphas. Required Input Parameters: -------------------------- in: Collection of OERecords (one per ligand) of Short Trajectory MD results. Outputs: -------- out (.oedb file): file of the Analysis results for all ligands. """ job.uuid = "43f33e3f-0240-4e34-9b8b-da4d5796052a" ifs = DatasetReaderCube("ifs") ifs.promote_parameter("data_in", promoted_name="in", title="System Input OERecord",
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolIStreamCube, OEMolOStreamCube from ComplexPrepCubes.cubes import ProteinReader, Splitter, SolvationCube, ComplexPrep, ForceFieldPrep from LigPrepCubes.cubes import LigChargeCube job = WorkFloe("ComplexPrep") job.description = """ Complex Preparation Workflow Ex. python floes/openmm_complex_prep.py --protein protein.oeb --ligands ligands.oeb --ofs-data_out complex.oeb Parameters: ----------- protein (file): OEB file of the prepared protein ligands (file): OEB file of the prepared ligands Outputs: -------- ofs: Output file """ job.classification = [['Simulation']] job.tags = [tag for lists in job.classification for tag in lists] # Ligand setting iligs = OEMolIStreamCube("Ligands", title="Ligand Reader") iligs.promote_parameter("data_in", promoted_name="ligands",
import logging import socket print('host:', socket.gethostname()) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s' + socket.gethostname() + '%(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') from floe.api import WorkFloe from cuberecord.cubes import DatasetReaderCube, DatasetWriterCube from torsion.cubes import ParallelGenerateFragments # Declare Floe, add metadata for UI job = WorkFloe('Generate Torsional Fragments') job.description = """ Generate Torsional Fragments """ job.classification = [["Torsion"]] # Declare cubes ifs = DatasetReaderCube('ifs') fraggenCube = ParallelGenerateFragments('fraggenCube') fraggen_failure = DatasetWriterCube('fraggen_failure') ofs = DatasetWriterCube('ofs') cubes = [ifs, fraggenCube, ofs, fraggen_failure] # Promote parameters ifs.promote_parameter('data_in', promoted_name='data_in') ofs.promote_parameter('data_out', promoted_name='ofs',
# THE SAMPLE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_clusterAnalysis import ( ParallelClusterOETrajCube, ParallelMDTrajAnalysisClusterReport, MDFloeReportCube) job = WorkFloe('Short Trajectory MD cluster and report', title='Short Trajectory MD cluster and report') job.description = """ An MD production run which has been analyzed in terms of interactions between the ligand and the active site is clustered in terms of ligand RMSD after fitting the trajectory based on active site C_alphas. Required Input Parameters: -------------------------- Dataset result of an MD Short Trajectory run with traj OEMols and MMPBSA interactions Outputs: -------- floe report: html page of the Analysis of each ligand. out (.oedb file): file of the Analysis results for all ligands. """
# EXPRESS OR IMPLIED. OPENEYE DISCLAIMS ALL WARRANTIES, INCLUDING, BUT # NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. In no event shall OpenEye be # liable for any damages or liability in connection with the Sample Code # or its use. from floe.api import WorkFloe from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_trajProcessing import ( ParallelTrajInteractionEnergyCube, ParallelTrajPBSACube) from MDOrion.TrjAnalysis.cubes_clusterAnalysis import MDFloeReportCube job = WorkFloe('Trajectory MMPBSA from Traj OEMOls', title='Trajectory MMPBSA from Traj OEMOls') job.description = """ An MMPBSA analysis is carried out on trajectory OEMols for protein, ligand and possibly waters. Required Input Parameters: -------------------------- .oedb of records containing protein, ligand and possibly water trajectory OEMols from an MD Short Trajectory run. Outputs: -------- out (.oedb file): file of the Analysis results for all ligands. """
import logging import socket print('host:', socket.gethostname()) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s' + socket.gethostname() + '%(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') from torsion.cubes import ParallelGenerateStartingConfs, ParallelGenerateTorsionalConfs from floe.api import WorkFloe from floe.api import ParallelCubeGroup from floe.api import OEMolOStreamCube from floe.api import OEMolIStreamCube # Declare Floe, add metadata for UI job = WorkFloe('Generate Starting Conformers') job.description = """ Generate Starting and Torsional Conformers """ job.classification = [["Torsion"]] # Declare Cubes ifs = OEMolIStreamCube('ifs') ifs.promote_parameter('data_in', promoted_name='ifs') ifs.parameter_overrides["download_format"] = {"hidden": True} ifs.parameter_overrides["limit"] = {"hidden": True} # Conformer generation confgenCube = ParallelGenerateStartingConfs('confgenCube') confgenCube.promote_parameter('max_confs', required=True) confgenCube.promote_parameter('rms_cutoff', required=True) confgenCube.parameter_overrides["energy_window"] = {"hidden": True}
from __future__ import unicode_literals from floe.api import WorkFloe, OEMolIStreamCube, OEMolOStreamCube from OpenMMCubes.cubes import OpenMMnvtCube job = WorkFloe("NVT Run") job.description = """ NVT simulation of an OpenMM-ready solvated complex Ex: python floes/openmm_MDnvt.py --complex complex.oeb --ofs-data_out nvt.oeb --picosec 10.0 Parameters: ----------- complex (file): OEB file of the prepared protein:ligand complex Optional: -------- picosec (float): Number of picoseconds to warm up the complex temperature (decimal): target final temperature after warming Outputs: -------- ofs: Outputs the constant temperature and volume system """ job.classification = [['NVT']] job.tags = [tag for lists in job.classification for tag in lists] ifs = OEMolIStreamCube("complex", title="Complex Reader") ifs.promote_parameter("data_in", promoted_name="complex", title='Complex Input File', description="protein:ligand complex input file")
from MDOrion.LigPrep.cubes import LigandSetting from MDOrion.LigPrep.cubes import ParallelLigandChargeCube from MDOrion.System.cubes import IDSettingCube from MDOrion.System.cubes import MDComponentCube from MDOrion.ComplexPrep.cubes import ComplexPrepCube from MDOrion.System.cubes import ParallelSolvationCube from MDOrion.ForceField.cubes import ParallelForceFieldCube from MDOrion.MDEngines.cubes import ParallelMDMinimizeCube job = WorkFloe("Complex Preparation with Minimization", title="Complex Preparation with Minimization") job.description = """ Complex Preparation Workflow Ex. python floes/openmm_complex_prep.py --protein protein.oeb --ligands ligands.oeb --ofs-data_out complex.oeb Parameters: ----------- protein (file): OEB file of the prepared protein ligands (file): OEB file of the prepared ligands Outputs: --------
#!/usr/bin/env python from floe.api import (WorkFloe, ParallelCubeGroup) from orionplatform.cubes import DatasetReaderCube, DatasetWriterCube from MDOrion.TrjAnalysis.cubes_trajProcessing import ( ConformerGatheringData, ParallelConfTrajsToLigTraj, ParallelConcatenateTrajMMPBSACube) job = WorkFloe("Testing combining confs Traj OEMols to lig Traj OEMol") job.description = """ Testing Aggregating conf trajs into one ligand traj OEMol. The input dataset is an .oedb file of the aggregated confs MD results with Traj OEMols + IntE + PBSA """ # job.uuid = "7cacc2af-cae7-4dc7-8956-fcf539861e3d" ifs = DatasetReaderCube("ifs") ifs.promote_parameter("data_in", promoted_name="in", title="System Input OERecord", description="OERecord file name") confGather = ConformerGatheringData("Gathering Conformer Records") ligTrajCube = ParallelConfTrajsToLigTraj("ConfTrajsToLigTraj") ligMMPBSA = ParallelConcatenateTrajMMPBSACube('ConcatenateTrajMMPBSACube') ofs = DatasetWriterCube('ofs', title='OFS-Success') ofs.promote_parameter("data_out",
from floe.api import WorkFloe, OEMolIStreamCube, OEMolOStreamCube from YankCubes.cubes import YankBindingFECube, SyncBindingFECube job = WorkFloe("YANK small molecule absolute binding free energies") job.description = """ # Compute small molecule absolute binding free energies using YANK. This Floe processes the provided molecules, computes free energies of binding to a specified receptor, and appends the following SDData properties to the original molecules: """ iligand = OEMolIStreamCube("ReadingLigand") iligand.promote_parameter("data_in", promoted_name="ligands", title="Ligand Input File", description="Ligand file name") icomplex = OEMolIStreamCube("ReadingComplex") icomplex.promote_parameter("data_in", promoted_name="complex", title="Complex Input File", description="complex file name") sync = SyncBindingFECube("SyncCube") yankabfe = YankBindingFECube("YankBindingFE") ofs = OEMolOStreamCube('ofs', title='OFS-Success') ofs.set_parameters(backend='s3') fail = OEMolOStreamCube('fail', title='OFS-Failure')