Re: [ccp4bb] What really happens in XDSCONV?

2014-02-16 Thread Derek Logan
Dear Kay,

 Concerning usage of programs, everybody has his/her preferences, but what 
 could be simpler than a 2-liner XDSCONV.INP like
 INPUT_FILE=XDS_ASCII.HKL
 OUTPUT_FILE=temp.hkl CCP4  ! or CCP4_F or CCP4_I or SHELX or CNS
 and then running XDSCONV by running xdsconv? At least there's not much room 
 for mistakes.

Exactly!

 I beg to disagree, and this was the point of my question. The output of 
 XDSCONV literally says that 190093 reflections are read, and [of those, my 
 interpretation] 44047 are accepted. I may be a pedant but I can't read that 
 output in any other way. To me it looks like it is reading only the 
 reflections that already fall into the asymmetric unit and is ignoring all 
 the others. So if XDSCONV is really doing what it is supposed to, I would 
 suggest rephrasing that output line.
 
 good point about the rephrasing. I'll see to making the wording consistent 
 between XDSCONV and XDS.

Thanks for that.

 But irrespective of the wording, it does take all observations into account 
 when calculating the intensity (and amplitude) of the unique reflections (as 
 it should - ignoring reflections would not make sense, and would produce 
 significantly worse data).

Great, this was just the reassurance I was looking for.

 However, it does so not by calculating the geometric mean (which you seem to 
 assume), but by calculating the weighted mean. Weighting is done with the 
 variances, and here it also does not differ from (c)truncate or other 
 programs.

Sorry, that was a typo born of thinking I could quote the manual from memory.

 But yes, pedantry aside, I will start using pointless in my csh pipelines.
 
 please report back whether that changes (or even improves) your results! It 
 is always very good when people compare programs in a meaningful way, but 
 from my own experience I can say that meaningful comparisons are sometimes 
 not entirely straightforward to get right. (for the German-speaking: wer 
 misst, misst Mist!)

Probably I will still be in too much of a hurry each time to make a meaningful 
and thorough comparison, but if time allows I will compare XDSCONV with 
pointless/scala.

/Derek


Re: [ccp4bb] What really happens in XDSCONV?

2014-02-16 Thread Harry

Hi Derek

I strongly recommend comparing with pointless/aimless, *not* pointless/ 
scala (if you have the time!)


Scala is obsolete and was superseded by Aimless several years ago (I  
think 2010, without checking...). I find that Aimless is not only much  
faster than Scala, but also scales better.


On 16 Feb 2014, at 19:26, Derek Logan wrote:


Probably I will still be in too much of a hurry each time to make a  
meaningful and thorough comparison, but if time allows I will  
compare XDSCONV with pointless/scala.


/Derek


Harry
--
** note change of address **
Dr Harry Powell, MRC Laboratory of Molecular Biology, Francis Crick  
Avenue, Cambridge Biomedical Campus, Cambridge, CB2 0QH




Re: [ccp4bb] What really happens in XDSCONV?

2014-02-15 Thread Kay Diederichs
On Fri, 14 Feb 2014 17:25:36 +, Derek Logan 
derek.lo...@biochemistry.lu.se wrote:

Hi Tim,

 I would actually recommend using pointless (or xprep) instead of
 xdsconv. It is much easier to use and maybe even less error prone.

I take the point about pointless but XPREP is commercial software sold by 
Bruker and costs �700 (as I remember), so is not really an option for everyone.

pointless is a good program, and I also use it, but to call it a replacement 
for XDSCONV would be wrong. But yes, it can be used to convert XDS_ASCII.HKL to 
a multi-record MTZ file (this is just a format conversion!) which is then fed 
into CCP4 truncate (which calculates amplitudes from intensities). At that 
point, you have replaced one implementation of FrenchWilson 1978 by a 
different one. Which one is better is a possible question (and you _can_ find 
meaningful information about this in the CCP4BB archives), but the differences 
are probably not very significant for real data. 

I didn't even know that xprep calculates amplitudes from intensities, but I 
wonder why it should do it any better than other well-tested programs.

Concerning usage of programs, everybody has his/her preferences, but what could 
be simpler than a 2-liner XDSCONV.INP like
INPUT_FILE=XDS_ASCII.HKL
OUTPUT_FILE=temp.hkl CCP4  ! or CCP4_F or CCP4_I or SHELX or CNS
and then running XDSCONV by running xdsconv? At least there's not much room 
for mistakes. 
Within XDSGUI 
(http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/XDSGUI) , running 
XDSCONV is a matter of two mouse clicks, nothing else.


 All your quotes from the output are perfectly consistent. The first
 table tells you there are 190093 unmerged reflections in total, but
 only 44059 unique reflections. Hence if you ask xdsconv to merge the
 output (MERGE=TRUE), it will do so and only write 44047 (a few less
 than 44059 because it rejects those 19 unmerged reflections with
 I-3sigma).

I beg to disagree, and this was the point of my question. The output of 
XDSCONV literally says that 190093 reflections are read, and [of those, my 
interpretation] 44047 are accepted. I may be a pedant but I can't read that 
output in any other way. To me it looks like it is reading only the 
reflections that already fall into the asymmetric unit and is ignoring all the 
others. So if XDSCONV is really doing what it is supposed to, I would suggest 
rephrasing that output line.

good point about the rephrasing. I'll see to making the wording consistent 
between XDSCONV and XDS.

But irrespective of the wording, it does take all observations into account 
when calculating the intensity (and amplitude) of the unique reflections (as it 
should - ignoring reflections would not make sense, and would produce 
significantly worse data).
However, it does so not by calculating the geometric mean (which you seem to 
assume), but by calculating the weighted mean. Weighting is done with the 
variances, and here it also does not differ from (c)truncate or other programs.


 The documentation tells you:
 MERGE=TRUE means that the weighted mean of symmetry equivalent
 reflection intensities appearing in the input file will be determined
 and used in the output file.

Yes, I paraphrased this in my original mail. I like to believe that the manual 
describes what the program is doing, but the output isn't consistent with this 
in my view.

 xscale does not scale data in a crystallographic sense since scaling
 is already done in the CORRECT step of XDS. It put the data on a
 common scale (in a sophisticated manner), i.e. if you only have one
 data set there is no need to run xscale except for the thinner shells
 for the statistics table compared to CORRECT.

No need indeed, except that including XSCALE doesn't leave me sleepless about 
the data having been merged. And maybe correction for radiation damage when 
you have sufficient multiplicity?

But yes, pedantry aside, I will start using pointless in my csh pipelines.

please report back whether that changes (or even improves) your results! It is 
always very good when people compare programs in a meaningful way, but from my 
own experience I can say that meaningful comparisons are sometimes not entirely 
straightforward to get right. (for the German-speaking: wer misst, misst 
Mist!) 

good luck,

Kay



Best wishes
Derek

 On 02/14/2014 03:57 PM, Derek Logan wrote:
 Hi,
 
 I am a long time user of XDS (20 years this year) but all the same
 I find that I have constant angst about losing observations because
 I don't understand what goes in in the conversion steps to get to
 CCP4 format. I used to believe that XSCALE was always necessary,
 and I always use it in my workflow even if there is only one
 dataset (after all, there's nothing to lose), but my Ph.D. students
 pointed out to me that XDSCONV could take output directly from
 CORRECT, and they often do it this way. The XDS wiki and XDSCONV
 docs seems to confirm this: using MERGE=TRUE in XDSCONV should
 output 

Re: [ccp4bb] What really happens in XDSCONV?

2014-02-15 Thread Kay Diederichs
On Sat, 15 Feb 2014 09:50:43 +, Kay Diederichs 
kay.diederi...@uni-konstanz.de wrote:


pointless is a good program, and I also use it, 

to clarify: I use pointless for space group determination. I don't use it for 
producing multi-record MTZ files, since I use XDSCONV.


[ccp4bb] What really happens in XDSCONV?

2014-02-14 Thread Derek Logan
Hi,

I am a long time user of XDS (20 years this year) but all the same I find that 
I have constant angst about losing observations because I don't understand what 
goes in in the conversion steps to get to CCP4 format. I used to believe that 
XSCALE was always necessary, and I always use it in my workflow even if there 
is only one dataset (after all, there's nothing to lose), but my Ph.D. students 
pointed out to me that XDSCONV could take output directly from CORRECT, and 
they often do it this way. The XDS wiki and XDSCONV docs seems to confirm this: 
using MERGE=TRUE in XDSCONV should output the geometrical mean of the 
observations. However I am worried by what the XDSCONV output says. For today's 
example CORRECT gives me this:

NUMBER OF REFLECTIONS IN SELECTED SUBSET OF IMAGES  190093
NUMBER OF REJECTED MISFITS3842
NUMBER OF SYSTEMATIC ABSENT REFLECTIONS 34
NUMBER OF ACCEPTED OBSERVATIONS 186217
NUMBER OF UNIQUE ACCEPTED REFLECTIONS44059

XDSCONV says the following:

FRIEDEL'S_LAW=TRUE
MERGE=TRUE
NUMBER OF REFLECTION RECORDS ON INPUT FILE  190093
NUMBER OF IGNORED REFLECTIONS (I -3.0*SIGMA)   19
NUMBER OF REFLECTIONS ACCEPTED FROM INPUT FILE   44047

To my literal mind this says it is throwing away most of the observations. Now 
if I merge the reflections in XSCALE first it says this:

FRIEDEL'S_LAW=TRUE
MERGE=TRUE
NUMBER OF REFLECTION RECORDS ON INPUT FILE   44046
NUMBER OF IGNORED REFLECTIONS (I -3.0*SIGMA)0
NUMBER OF REFLECTIONS ACCEPTED FROM INPUT FILE   44046

which makes more sense. If I compare the first few reflections of the output 
file with structure factor amplitudes from XDSCONV for each scenario they are 
different, but I believe that is because XSCALE has put the intensities on an 
absolute scale and CORRECT has not.

Basically all I want to know is that the output from XDSCONV is misleadingly 
worded, i.e. that even if it appears to say that only the asymmetric unit has 
been accepted, actually all observations have gone in and the geometric mean is 
indeed output. That would put my mind to rest!

/Derek

Derek Logan tel: +46 46 222 1443
Associate Professor mob: +46 76 8585 707
Dept. of Biochemistry and Structural Biology  
www.cmps.lu.sehttp://www.cmps.lu.se
Centre for Molecular Protein Science   
www.maxlab.lu.se/node/307http://www.maxlab.lu.se/node/307
Lund University, Box 124, 221 00 Lund, Sweden







Re: [ccp4bb] What really happens in XDSCONV?

2014-02-14 Thread Derek Logan
Hi Tim,

 I would actually recommend using pointless (or xprep) instead of
 xdsconv. It is much easier to use and maybe even less error prone.

I take the point about pointless but XPREP is commercial software sold by 
Bruker and costs €700 (as I remember), so is not really an option for everyone.

 All your quotes from the output are perfectly consistent. The first
 table tells you there are 190093 unmerged reflections in total, but
 only 44059 unique reflections. Hence if you ask xdsconv to merge the
 output (MERGE=TRUE), it will do so and only write 44047 (a few less
 than 44059 because it rejects those 19 unmerged reflections with
 I-3sigma).

I beg to disagree, and this was the point of my question. The output of XDSCONV 
literally says that 190093 reflections are read, and [of those, my 
interpretation] 44047 are accepted. I may be a pedant but I can't read that 
output in any other way. To me it looks like it is reading only the reflections 
that already fall into the asymmetric unit and is ignoring all the others. So 
if XDSCONV is really doing what it is supposed to, I would suggest rephrasing 
that output line.

 The documentation tells you:
 MERGE=TRUE means that the weighted mean of symmetry equivalent
 reflection intensities appearing in the input file will be determined
 and used in the output file.

Yes, I paraphrased this in my original mail. I like to believe that the manual 
describes what the program is doing, but the output isn't consistent with this 
in my view.

 xscale does not scale data in a crystallographic sense since scaling
 is already done in the CORRECT step of XDS. It put the data on a
 common scale (in a sophisticated manner), i.e. if you only have one
 data set there is no need to run xscale except for the thinner shells
 for the statistics table compared to CORRECT.

No need indeed, except that including XSCALE doesn't leave me sleepless about 
the data having been merged. And maybe correction for radiation damage when you 
have sufficient multiplicity?

But yes, pedantry aside, I will start using pointless in my csh pipelines.

Best wishes
Derek

 On 02/14/2014 03:57 PM, Derek Logan wrote:
 Hi,
 
 I am a long time user of XDS (20 years this year) but all the same
 I find that I have constant angst about losing observations because
 I don't understand what goes in in the conversion steps to get to
 CCP4 format. I used to believe that XSCALE was always necessary,
 and I always use it in my workflow even if there is only one
 dataset (after all, there's nothing to lose), but my Ph.D. students
 pointed out to me that XDSCONV could take output directly from
 CORRECT, and they often do it this way. The XDS wiki and XDSCONV
 docs seems to confirm this: using MERGE=TRUE in XDSCONV should
 output the geometrical mean of the observations. However I am
 worried by what the XDSCONV output says. For today's example
 CORRECT gives me this:
 
 NUMBER OF REFLECTIONS IN SELECTED SUBSET OF IMAGES  190093 NUMBER
 OF REJECTED MISFITS3842 NUMBER OF
 SYSTEMATIC ABSENT REFLECTIONS 34 NUMBER OF ACCEPTED
 OBSERVATIONS 186217 NUMBER OF UNIQUE ACCEPTED
 REFLECTIONS44059
 
 XDSCONV says the following:
 
 FRIEDEL'S_LAW=TRUE MERGE=TRUE NUMBER OF REFLECTION RECORDS ON INPUT
 FILE  190093 NUMBER OF IGNORED REFLECTIONS (I -3.0*SIGMA)
 19 NUMBER OF REFLECTIONS ACCEPTED FROM INPUT FILE   44047
 
 To my literal mind this says it is throwing away most of the
 observations. Now if I merge the reflections in XSCALE first it
 says this:
 
 FRIEDEL'S_LAW=TRUE MERGE=TRUE NUMBER OF REFLECTION RECORDS ON INPUT
 FILE   44046 NUMBER OF IGNORED REFLECTIONS (I -3.0*SIGMA)
 0 NUMBER OF REFLECTIONS ACCEPTED FROM INPUT FILE   44046
 
 which makes more sense. If I compare the first few reflections of
 the output file with structure factor amplitudes from XDSCONV for
 each scenario they are different, but I believe that is because
 XSCALE has put the intensities on an absolute scale and CORRECT has
 not.
 
 Basically all I want to know is that the output from XDSCONV is
 misleadingly worded, i.e. that even if it appears to say that only
 the asymmetric unit has been accepted, actually all observations
 have gone in and the geometric mean is indeed output. That would
 put my mind to rest!
 
 /Derek 
 
 
 
 Derek Logan tel: +46 46 222 1443
 Associate Professor mob: +46 76
 8585 707 Dept. of Biochemistry and Structural Biology
 www.cmps.lu.sehttp://www.cmps.lu.se Centre for Molecular Protein
 Science
 www.maxlab.lu.se/node/307http://www.maxlab.lu.se/node/307 Lund
 University, Box 124, 221 00 Lund, Sweden
 
 
 
 
 
 
 
 - -- 
 - --
 Dr Tim Gruene
 Institut fuer anorganische Chemie
 Tammannstr. 4
 D-37077 Goettingen
 
 GPG Key ID = A46BEE1A
 
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.12