[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ccp4bb]: re mtz2various ... oops



***  For details on how to be removed from this list visit the  ***
***    CCP4 home page http://www.dl.ac.uk/CCP/CCP4/main.html    ***


re mtz2various and ouput of I's

I think I messed up again

talking with Peter Keller


the script
 mtz2various HKLIN BMSC001.mtz HKLOUT BMSC001.cif <<EOF 
  OUTPUT CIF data_BMSC001 
  LABIN I=I SIGI=SIGI FREE=FreeR_flag FP=F SIGFP=SIGF FC=FC PHIC=PHIC 
  END 
  EOF 

will work with the current version of mtz2various



but I's were not allowed in an older version, and it should only fail
if you are using the older ccp4 version which doesnt match the current
documentation.



The code is a bit sneaky

If you specify on LABIN
    I or I(+) you will get I(+) if I is absent from the mtz file
              but will always get I if I is present
If you specify on LABIN
    I(+) and I(-) you will get I(+) and I(-) as 2 different hkl's

If you specify I and I(+) the program stops with an error message

It looks like there should be an ELSE IF in the options
if you specify I or I(+) as I always gets preference and
you get the same column regardless of what you wanted




this block

C   I(+) or I specified; nothing else..
        if (lookup(19).gt.0 .or. lookup(27).gt.0) then
            if (logmss(19) .or. logmss(27)) then
              rstat = 'x'
              if (inan.eq.1) jffsq=1
            else
              jffsq=1
              if(lookup(19).gt.0) then
                ffsq=ADATA(19)
                sigfsq=ADATA(20)
              end if
              if(lookup(27).gt.0) then
                ffsq=ADATA(27)
                sigfsq=ADATA(28)
              end if


would be better as


C   I(+) or I specified; nothing else..
        if (lookup(19).gt.0 .or. lookup(27).gt.0) then
            if (logmss(19) .or. logmss(27)) then
              rstat = 'x'
              if (inan.eq.1) jffsq=1
            else
              jffsq=1
              if(lookup(19).gt.0) then
                ffsq=ADATA(19)
                sigfsq=ADATA(20)
              else if(lookup(27).gt.0) then
                ffsq=ADATA(27)
                sigfsq=ADATA(28)
              end if



kim henrick