Skip to content

Commit

Permalink
various IDockYa improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
wahljo1 authored and wahljo1 committed Apr 12, 2024
1 parent b982864 commit 0c7f974
Show file tree
Hide file tree
Showing 6 changed files with 248 additions and 116 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ private double getStartingPositions(StereoMolecule mol, List<Conformer> initialP
catch(Exception e) {
throw new DockingFailedException("could not assess atom types");
}
MMFFPositionConstraint constraint = new MMFFPositionConstraint(conf,50,0.2);
MMFFPositionConstraint constraint = new MMFFPositionConstraint(conf,50,0.5);
mmff.addEnergyTerm(constraint);
mmff.minimise();
Conformer ligConf = new Conformer(conf);
Expand Down Expand Up @@ -336,8 +336,9 @@ public DockingResult dockMolecule(StereoMolecule mol) throws DockingFailedExcept

}
double energy = mcSearch(pose,steps);

if(energy<bestEnergy) {
bestEnergy = energy;
bestEnergy = pose.getScore();
bestPose = pose.getLigConf();
contributions = pose.getContributions();
}
Expand Down Expand Up @@ -419,7 +420,7 @@ private double mcSearch(LigandPose pose, int steps) {

pose.setState(bestState);
pose.removeConstraints();
bestEnergy = pose.getFGValue(new double[bestState.length]);
bestEnergy = pose.getScore();
return bestEnergy;

}
Expand Down Expand Up @@ -510,7 +511,7 @@ public double refineNativePose(double d, double[] coords) {
StereoMolecule conf = conformer.toMolecule();
conf.ensureHelperArrays(Molecule.cHelperParities);
mmff = new ForceFieldMMFF94(conf, ForceFieldMMFF94.MMFF94SPLUS, ffOptions);
constraint = new MMFFPositionConstraint(conf,50,0.2);
constraint = new MMFFPositionConstraint(conf,50,0.5);
mmff.addEnergyTerm(constraint);
mmff.minimise();
Conformer ligConf = new Conformer(conf);
Expand Down
76 changes: 76 additions & 0 deletions src/main/java/com/actelion/research/chem/docking/DockingTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.actelion.research.chem.docking;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import com.actelion.research.chem.Canonizer;
import com.actelion.research.chem.IDCodeParser;
import com.actelion.research.chem.Molecule;
import com.actelion.research.chem.Molecule3D;
import com.actelion.research.chem.MolfileCreator;
import com.actelion.research.chem.StereoMolecule;
import com.actelion.research.chem.docking.DockingEngine.DockingResult;
import com.actelion.research.chem.docking.DockingEngine.ScoringFunction;
import com.actelion.research.chem.io.Mol2FileParser;

public class DockingTest {

public static final String DUDE_PLUS_DIR = "C:\\Users\\wahljo1\\benchmark_phesa\\DUD_E-PLUS\\DUDE-plus-rev1\\ace";



public static void main(String[] args) throws Exception {
String receptor = DUDE_PLUS_DIR +"/" + "protein.mol2";
String ligand = DUDE_PLUS_DIR +"/"+ "ligand.mol2";
Mol2FileParser m2fp = new Mol2FileParser();

Molecule3D lig = new Molecule3D(m2fp.load(new File(ligand)));
Canonizer can = new Canonizer(lig);
DockingUtils.repairMolecule3D(lig);
StereoMolecule canMol = can.getCanMolecule(true);
lig = new Molecule3D(canMol);
lig.ensureHelperArrays(Molecule.cHelperCIP);

int[] ligAtomTypes = new int[lig.getAtoms()];


//mols.values().forEach(e -> e.forEach(i -> rec.addMolecule(i)));
Molecule3D rec = m2fp.load(receptor);
rec.normalizeAmbiguousBonds();
can = new Canonizer(rec);
rec = new Molecule3D(rec);
rec.ensureHelperArrays(StereoMolecule.cHelperCIP);
DockingUtils.repairMolecule3D(rec);

DockingEngine engine = new DockingEngine(rec, lig,50,10,8.0,ScoringFunction.CHEMPLP);
StereoMolecule toDock = new StereoMolecule(lig);
toDock.ensureHelperArrays(Molecule.cHelperParities);
DockingResult result = engine.dockMolecule(toDock);

System.out.println(result.getScore());
System.out.println(result.getContributions());

String delim = System.getProperty("line.separator");
File outfile = new File("docked_random.sdf");
FileWriter fileWriter;
try {

fileWriter = new FileWriter(outfile);
MolfileCreator mfc = new MolfileCreator(result.getPose());
mfc.writeMolfile(fileWriter);
fileWriter.write(delim);
fileWriter.write("$$$$");
fileWriter.write(delim);
fileWriter.flush();
fileWriter.close();
System.out.println("written");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}
}
11 changes: 0 additions & 11 deletions src/main/java/com/actelion/research/chem/docking/LigandPose.java
Original file line number Diff line number Diff line change
Expand Up @@ -214,18 +214,7 @@ private void updateDihedralAngles() {
torsionHelper.rotateAroundBond(b, deltaTorsion,ligConf,false);
}
}
/*
public void updateState() {
for(int a=0;a<mol.getAllAtoms();a++) {
Coordinates c = ligConf.getCoordinates(a);
state[3*a] = c.x;
state[3*a+1] = c.y;
state[3*a+2] = c.z;
}
engine.updateState();

}
*/

@Override
public void setState(double[] state){
Expand Down

0 comments on commit 0c7f974

Please sign in to comment.