Dear All,

As someone who is both a user of external software and supports internally 
developed software to external users, I am quite familiar with both sides of 
this argument. From time to time someone will notice a "weird feature" in 
software - sometimes this is a bug, sometimes misuse (which is still by and 
large a bug, but in documentation) and sometimes a change in circumstances i.e. 
reasonable assumptions made in developing a package (e.g. background always 
over 1 count / all data sets have some reflections with I/sigI > 3 etc) become 
problematic.

As an individual developing software, and a member of a team doing so, it is 
always more comfortable if a user comes back with a collegiate "quiet word" 
that the software did something odd. However, I suspect it would be for the 
greater good that a more public approach was taken in general, since the less 
attentive user may miss this odd feature and take the results as gospel - if 
the knowledge of the bug / feature whatever was not in the public domain. 
Despite appearances people do not like to contact authors of software packages 
to complain. 

To make a note that "this version of package xyz has been found to be sometimes 
unpredictable with version 123 of the pipeline" does not blame the package, or 
the pipeline, but says that you should be warned with this combination. Ideally 
the authors of package xyz and the pipeline would be alerted, by the other 
developers or users, but it is better (IMHO) to be open. Public bug trackers 
are a good example of this. 

I suspect this matter of anisotropy correction is a similar one. Here we have a 
change in circumstances - the actual intensity measurements are modified - and 
passed in as if they are the originals. It is reasonable that this may affect 
the outcome of subsequent analysis and it is hoped that this does change the 
outcome but in a positive manner. This does not appear to be the case here. 

I have been asked on several occasions to incorporate the anisotropy correction 
into xia2 as it 'always makes things better', and have resisted on the grounds 
that the purpose of the package is to faithfully analyse the data as provided 
and provide uncorrected intensities as output. The corrections should ideally 
be performed within the downstream software, since they then know exactly what 
has happened to the measurements and will make fewer (ideally no) incorrect 
assumptions. 

It's already routine to write out multiple versions of e.g. phases, weights, 
sigma values etc based on different assumptions and flag then accordingly - 
perhaps we should be doing the same with modified intensities, so that packages 
which require the unmodified values could ignore the corrected ones. That would 
avoid the need for any health warnings and ensure changes in the wider 
environment do not invalidate assumptions...

Obviously, all of the above is my humble opinion and other opinions are equally 
valid. 

Best wishes Graeme


-- 
This e-mail and any attachments may contain confidential, copyright and or 
privileged material, and are for the use of the intended addressee only. If you 
are not the intended addressee or an authorised recipient of the addressee 
please notify us of receipt by returning the e-mail and do not use, copy, 
retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not 
necessarily of Diamond Light Source Ltd. 
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments 
are free from viruses and we cannot accept liability for any damage which you 
may sustain as a result of software viruses which may be transmitted in or with 
the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and 
Wales with its registered office at Diamond House, Harwell Science and 
Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom

Reply via email to