Author: Dave Case Date: 9/18/91 PROGRAM: sander PROBLEM: There was a mistake in identifying the heme macrocyle in chemical shift calculations, and applying special code to handle it. SYMPTOM: Would affect only calculations on heme proteins, and then only if the heme group is non-planar. Even then the errors are small except for protons very near the heme group. Since the empirical formulas used were calbrated on planar hemes, calculations on non-planar hemes would be suspect anyway, but the corrected results should be better than the incorrect ones. FIX: two "if" statements in routine cshf.f that identified the heme macrocycle contribution have been fixed. CODE: cshf.f : Modified lines have '!' Order is "************* old --- new *************** old --- new" *************** *** 178,184 c -- get normal to this ring c if (i.eq.1) then ! if(namr(j)(1:5) .eq. 'HEM M') then call plane(iatr(4,j),iatr(8,j),iatr(12,j),x,rn(1,j), . drn(1,1,j),cent(1,j)) else --- 178,184 ----- c -- get normal to this ring c if (i.eq.1) then ! if(namr(j)(1:3).eq.'HEM'.and.namr(j)(8:8).eq.'M') then call plane(iatr(4,j),iatr(8,j),iatr(12,j),x,rn(1,j), . drn(1,1,j),cent(1,j)) else *************** *** 245,251 d(n,iprot(i)) = d(n,iprot(i)) - dshift(n)*fac d(n,iatr(k,j)) = d(n,iatr(k,j)) - dshift(n+3)*fac d(n,iatr(kp1,j)) = d(n,iatr(kp1,j)) - dshift(n+6)*fac ! if(namr(j)(1:5) .eq. 'HEM M') then d(n,iatr(4,j)) = d(n,iatr(4,j)) - dshifr(n)*fac d(n,iatr(8,j)) = d(n,iatr(8,j)) - dshifr(n+3)*fac d(n,iatr(12,j)) = d(n,iatr(12,j)) - dshifr(n+6)*fac --- 245,251 ----- d(n,iprot(i)) = d(n,iprot(i)) - dshift(n)*fac d(n,iatr(k,j)) = d(n,iatr(k,j)) - dshift(n+3)*fac d(n,iatr(kp1,j)) = d(n,iatr(kp1,j)) - dshift(n+6)*fac ! if(namr(j)(1:3).eq.'HEM'.and.namr(j)(8:8).eq.'M') then d(n,iatr(4,j)) = d(n,iatr(4,j)) - dshifr(n)*fac d(n,iatr(8,j)) = d(n,iatr(8,j)) - dshifr(n+3)*fac d(n,iatr(12,j)) = d(n,iatr(12,j)) - dshifr(n+6)*fac