If you try to calculate the surface area using NumericalSurface for protein 2UZO, you obtain the following results:
33401 with solvent_radius=1.4
303 with solvent_radius=0.1
0 with solvent_radius=0
The results for NumericalSurface don't seem to make sense. Using a radius of zero is supposed to give the vdw surface, but it does not. Protein is attached. Paths will need to be changed in the code below.
package pocket;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.util.List;
import org.openscience.cdk.ChemFile;
import org.openscience.cdk.geometry.surface.NumericalSurface;
import org.openscience.cdk.interfaces.IAtom;
import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.interfaces.IBioPolymer;
import org.openscience.cdk.interfaces.IChemFile;
import org.openscience.cdk.interfaces.IChemModel;
import org.openscience.cdk.interfaces.IChemSequence;
import org.openscience.cdk.interfaces.IMonomer;
import org.openscience.cdk.io.IChemObjectReader;
import org.openscience.cdk.io.PDBReader;
import org.openscience.cdk.nonotify.NNChemFile;
import org.openscience.cdk.protein.data.PDBAtom;
import org.openscience.cdk.protein.data.PDBMonomer;
import org.openscience.cdk.protein.data.PDBPolymer;
import org.openscience.cdk.protein.data.PDBStrand;
import org.openscience.cdk.tools.manipulator.ChemFileManipulator;
/**
*
*/
public class Main {
/* Creates a new instance of Main /
public Main() {
}
public void testProtein() throws Exception {
String filename = "C:/Documents and Settings/jb/My Documents/pocket/java/pocket/2UZO.pdb";
System.out.println(filename);
InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename);
System.out.println(ins);
//IChemObjectReader reader = new PDBReader(ins);
IChemObjectReader reader = new PDBReader(new FileReader(new File(filename)));
ChemFile chemFile = (ChemFile) reader.read(new NNChemFile());
//assertEquals(1, chemFile.getChemSequenceCount());
org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0);
//assertEquals(1, seq.getChemModelCount());
IChemModel model = seq.getChemModel(0);
//assertEquals(1, model.getMoleculeSet().getMoleculeCount());
IAtomContainer container = model.getMoleculeSet().getMolecule(0);
NumericalSurface surf = new NumericalSurface(container);
surf.calculateSurface();
double surfarea;
surfarea = surf.getTotalSurfaceArea();
System.out.println(surfarea);
IBioPolymer mol = (IBioPolymer)container;
//assertEquals(327, mol.getAtomCount());
System.out.println(mol.getAtomCount());
//assertEquals(46, mol.getMonomerCount());
System.out.println(mol.getMonomerCount());
//assertNotNull(mol.getMonomer("THRA1", "A"));
//assertEquals(7, mol.getMonomer("THRA1", "A").getAtomCount());
//assertNotNull(mol.getMonomer("ILEA7", "A"));
//assertEquals(8, mol.getMonomer("ILEA7", "A").getAtomCount());
IAtom nAtom = mol.getAtom(94);
//assertTrue(nAtom instanceof PDBAtom);
PDBAtom atom = (PDBAtom)nAtom;
System.out.println(atom.getSymbol());
//assertEquals("C", atom.getSymbol());
//assertEquals(95, atom.getSerial());
//assertEquals("CZ", atom.getName());
//assertEquals("PHE", atom.getResName());
//assertEquals("13", atom.getResSeq());
//assertEquals(1.0, atom.getOccupancy(), 0.001);
//assertEquals(6.84, atom.getTempFactor(), 0.001);
}
/**
*/
public static void main(String[] args) throws Exception{
Main fr = new Main(); fr.testProtein(); String filename = "C:/Documents and Settings/jb/My Documents/pocket/java/pocket/2UZO.pdb"; System.out.println(filename);
}
}
protein 2UZO
Gives a non-zero value when solvent radius = 0.
Can you update the bug report to fixed/closed ?
On Thu, Aug 11, 2016 at 4:03 AM, Egon Willighagen egonw@users.sf.net
wrote:
--
Rajarshi Guha | http://blog.rguha.net
NIH Center for Advancing Translational Science
Related
Bugs:
#568