Hi Daniel, couple of thoughts when I see this:
- in case you have not seen this yet, take a look at docu on structure alignment: http://biojava.org/wiki/BioJava:CookBook:PDB:align - the direction of your rotations is wrong,the SVDSuperimposer gives you the operations to be applied on the second atom set. - there is some utility methods in StructureTools, that might come in handy. e.g. Atom[] ca1 = StructureTools.getAtomCAArray(structure1); Atom[] ca2 = StructureTools.getAtomCAArray(structure2); - any particular reason why you are working with SEQRES records? for the superposition it might be sufficient to work with the ATOM records only, which can give you a quicker parsing of the files, since you can turn off the alignment of ATOM and SEQRES. Having said that, there can be situations when you actually might want it, e.g. see SmithWaterman3Daligner, which does a sequence based structure alignment... hope that helps, Andreas On Sun, Oct 31, 2010 at 7:56 PM, Daniel Asarnow <[email protected]> wrote: > I've been trying to pull out pieces of protein chains and superimpose > them...my current code (as generic-ified code snips below) works, but > I wonder if it couldn't be faster. > Has anyone worked on similar methods? Any other advice? > > Best regards everyone, > da > > Getting residue CA's as Atom[]: > > for (int i; i < length; i++) { > someAtoms[i] = someChain.getSeqResGroup(start + i).getAtom("CA"); > } > > Superimposing/aligning: > > SVDSuperimposer svds = new SVDSuperimposer(someAtoms1, someAtoms2); > Matrix rot = svds.getRotation(); > Atom trans = svds.getTranslation(); > for (int i = 0; i < length; i++) { > Calc.rotate(someAtoms1[i], rot); > Calc.shift(someAtoms1[i], trans); > } > SVDSuperimposer.getRmsd(someAtoms1, someAtoms2); > _______________________________________________ > Biojava-l mailing list - [email protected] > http://lists.open-bio.org/mailman/listinfo/biojava-l > _______________________________________________ Biojava-l mailing list - [email protected] http://lists.open-bio.org/mailman/listinfo/biojava-l
