code: private static double calCaRmsd(Atom[] ca1, Atom[] pro, int resn,
  			int[] res1, int[] res2) throws StructureException {
  
  		Atom[] cod1 = getAtoms(ca1, res1, resn, false);
  		Atom[] cod2 = getAtoms(pro, res2, resn, false);
  
  		if (cod1.length == 0 || cod2.length == 0) {
  			logger.info("length of atoms  == 0!");
  			return 99;
  		}
  
  		Matrix4d transform = SuperPositions.superpose(Calc.atomsToPoints(cod1),
  				Calc.atomsToPoints(cod2));
  
  		for (Atom a : cod2)
  			Calc.transform(a.getGroup(), transform);
  
  		return Calc.rmsd(cod1, cod2);
  	}
docs: Return the rmsd of the CAs between the input pro and this protein, at
  given positions. quite similar to transPdb but while that one transforms
  the whole ca2, this one only works on the res1 and res2 positions.
  
  Modifies the coordinates in the second set of Atoms (pro).
  
  @return rmsd of CAs