Hi

Okay, I can read that (sort of) with errors using a copy of mtzdmp from ccp4 v 
5.0, dated 23/01/04; I can tell that Ben Luisi's name is in there (hello Ben!) 
and that the file was "converted to MTZ file mark 1 on 15/ 5/92", inter alia. I 
can even tell that there are five columns and 17218 reflections...

Unfortunately, I get an error in reading the reflections themselves - 

>  LIST OF REFLECTIONS
>  ===================
> 
> >>>>>> CCP4 library signal library_file:Bad mode (Error)
>          raised in ccp4_file_readfloat <<<<<<
> >>>>>> System signal 22:Invalid argument (Error)
>          raised in ccp4_file_read <<<<<<
> <B><FONT COLOR="#FF0000"><!--SUMMARY_BEGIN-->
>  MTZDUMP:   Normal termination of mtzdump
> Times: User:       0.0s System:    0.0s Elapsed:     0:00  


My feeling is that all the discussion about VAXes etc may be irrelevant - in my 
view it's more likely that the programs for reading and writing the MTZ format 
changed (and the MTZ format itself changed as well) and are no longer capable 
of dealing with "MTZ file mark 1"...

If I can actually get the VAXes to which I referred to read an old DAT tape, I 
may be able to build a copy of CCP4 from 1993... but that's a problem for 
another day (anyone got a SCSI DDS drive I could plug into a VAX?).

On 14 Nov 2018, at 10:25, Eleanor Dodson wrote:

> Here is the file I was trying to read - please feel free to play with it!!
> Eleanor
> 
> On Wed, 14 Nov 2018 at 10:17, Harry Powell 
> <0000193323b1e616-dmarc-requ...@jiscmail.ac.uk> wrote:
> Hi
> 
> Weren't the CCP4 base-level routines re-written from FORTRAN to C sometime in 
> the late 1990's? Very occasionally I used to find bugs that had been 
> introduced in this process (or possibly not corrected...) so it's possible 
> that Eleanor's file might be readable with a really old code base.
> 
> BTW, I have recently had cause to search out a VMS system and have found 
> someone with a whole farm of running VAXes (or VAXen if you're geeky).
> 
> Harry
> 
> On 14 Nov 2018, at 09:46, Ian Tickle wrote:
> 
>> The CCP4 routines for MTZ and map files are written in C and thus do not use 
>> a Fortran unformatted OPEN statement, they use C-style block read & write.
>> 
>> Cheers
>> 
>> -- Ian
>> 
>> 
>> On Wed, 14 Nov 2018 at 08:59, Kay Diederichs 
>> <kay.diederi...@uni-konstanz.de> wrote:
>> It is not necessary to do error-prone conversions manually: the ifort 
>> Compiler understands the convert='VAXD' Option in its OPEN statement - see 
>> https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-open-convert-specifier
>> 
>> Thus one could just write a tiny read-write loop.
>> 
>> HTH
>> Kay
>> 
>> On Wed, 14 Nov 2018 00:51:02 +0000, Zhijie Li <zhijie...@utoronto.ca> wrote:
>> 
>> >It's also said here, at the end of file :
>> >
>> >https://www.cs.auckland.ac.nz/~patrice/210LN/DR4.pdf
>> >
>> >"add 1 to the left, with the binary point"
>> >
>> >0.10000.....
>> >
>> >
>> >
>> >________________________________
>> >From: CCP4 bulletin board <CCP4BB@JISCMAIL.AC.UK> on behalf of Zhijie Li 
>> ><zhijie...@utoronto.ca>
>> >Sent: Tuesday, November 13, 2018 7:43 PM
>> >To: CCP4BB@JISCMAIL.AC.UK
>> >Subject: Re: [ccp4bb] VERY old mtz file..
>> >
>> >
>> >Hi all,
>> >
>> >
>> >I think I know why it is a division of 4 instead of 2 is involved in 
>> >conversion from VAX to IEEE now. Short answer: a 2 is in the exponent bits 
>> >(bias of 128 instead of 127, visible), another 2 is hidden in the 
>> >scientific notation.
>> >
>> >
>> >I found this explanation+example on VAX F-float:
>> >
>> >http://courseweb.stthomas.edu/tpsturm/private/notes/qm300/FLOATPT.html
>> >
>> >
>> >So for IEEE754 float32, if we want to represent a same 12.75 (1100.11) in 
>> >the above example, we  would first conceptually write it in scientific 
>> >notation as 1.10011 x 1000 in binary. Then the mantissa part is the part 
>> >after the dot filled with zero to 23 bits: '10011000000000000000000', the 
>> >exponent part is 3+127=130 (dec)=10000010(bin). Then the binary IEEE754 
>> >float32 number is 0[10000010][10011000000000000000000]. (You can check it 
>> >here: https://www.h-schmidt.net/FloatConverter/IEEE754.html)
>> >
>> >
>> >Now compare this with the VAX 12.75 in the linked example, we can find that 
>> >besides the bias becoming 128, the conceptual binary scientific notation is 
>> >actually  0.110011 x 10000, instead of 1.10011 x 1000.  So the exponent 
>> >needed is 4 instead of 3. Then the exponent bits are 4+128=132=10000100 and 
>> >the VAX float32 becomes
>> >
>> >0[10000100][10011000000000000000000] ---if we write in a IEEE-style order. 
>> >Note that the mantissa appears to be same as the ieee mantissa, and the 
>> >exponent to be applied is 132-128=4. If this number is interpreted as 
>> >IEEE754, then it will be 1.10011 x 2exp(132-127)=1.10011 x 100000, four 
>> >times of what it should be.
>> >
>> >
>> >So, for normalised values, rearranging the VAX F-float bytes, reading as 
>> >IEEE, then dividing by 4 gives the correct value. (The C[0]-1 treatment in 
>> >the ccp4 lib is neat.)
>> >
>> >
>> >In this link describing VAX floats, it is unfortunate that it only states 
>> >that the bias for F-float is 128, but not that the mantissa starts from 
>> >0.01 instead of 0.1. Therefore the confusion.
>> >
>> >https://nssdc.gsfc.nasa.gov/nssdc/formats/VAXFloatingPoint.htm
>> >
>> >
>> >
>> >Thanks to all responded!
>> >
>> >
>> >Zhijie
>> >
>> >
>> >________________________________
>> >From: Ian Tickle <ianj...@gmail.com>
>> >Sent: Tuesday, November 13, 2018 4:54 PM
>> >To: Zhijie Li
>> >Cc: CCP4BB@JISCMAIL.AC.UK
>> >Subject: Re: [ccp4bb] VERY old mtz file..
>> >
>> >
>> >Hi Zhijie
>> >
>> >It's definitely a factor 4.  The code is in subroutine QTIEEE in the 
>> >Fortran source I mentioned previously at this line:
>> >
>> >See line:
>> >
>> >      A(I)=((A(I)+SIGN(2,A(I)))/4.AND..NOT.MNAN).OR.MDN2
>> >
>> >If you prefer it in C code it's in function vaxF2ieeeF in:
>> >
>> >ccp4-7.0-src/checkout/libccp4/ccp4/vmslibrary.c
>> >
>> >See line:
>> >
>> >out.c[0] = buffer[i].c[1] - (uint8)1; /* subtracts 2 from exponent */
>> >
>> >i.e. subtract 2 from exponent -> division by 4.
>> >
>> >Cheers
>> >
>> >-- Ian
>> >
>> >
>> >On Tue, 13 Nov 2018 at 19:52, Zhijie Li 
>> ><zhijie...@utoronto.ca<mailto:zhijie...@utoronto.ca>> wrote:
>> >If somebody is going to send these files by email, please send one to me 
>> >too. Thanks in advance. I actually prefer to get a MTZ file because the 
>> >miller indices would serve as good clues for understanding the encodings.  
>> >Even the first 1024 bytes of an MTZ would do (data array starts at byte 80 
>> >in MTZ).
>> >
>> >In my life I had only seen ieee754.  According to what I can find, VAX has 
>> >an exponent bias of 128 (ieee754 uses 127). Then it seems to me that when 
>> >converting from vax to ieee a division of 2 is involved. However all 
>> >procedures I have seen use a division of 4, which is quite puzzling to me. 
>> >A real data file containing meaningful numbers (eg., HKL indices) would be 
>> >very helpful. Thanks in advance.
>> >
>> >Zhijie
>> >
>> >> On Nov 13, 2018, at 2:21 PM, Johan Hattne 
>> >> <hat...@ucla.edu<mailto:hat...@ucla.edu>> wrote:
>> >>
>> >> Related by not exactly on topic: would anybody on the list be able to 
>> >> share old map files (not MTZ:s) with Convex, Cray, Fujitsu, or VAX 
>> >> reals/strings?  I�d be interested to see what those files actually 
>> >> look(ed) like.
>> >>
>> >> // Best wishes; Johan
>> >>
>> >>> On Nov 9, 2018, at 18:38, Zhijie Li 
>> >>> <zhijie...@utoronto.ca<mailto:zhijie...@utoronto.ca>> wrote:
>> >>>
>> >>> Hi all,
>> >>>
>> >>> On linux there are a few good GUI HEX editors. Here I�d like to 
>> >>> recommend BLESS, which conveniently displays all possible numerical 
>> >>> interpretations of the four bytes under cursor. It also allows the user 
>> >>> to switch between big endian or little endian through a checkbox. 
>> >>> Unfortunately all floats are assumed to be IEEE754, therefore VAX floats 
>> >>> won�t be interpreted correctly.  ( The simplest way to convert vax to 
>> >>> ieee float would be to write a little program to do some bit operations. 
>> >>> I�d be happy to take that as my weekend project)
>> >>>
>> >>>
>> >>> BTW, along the line of space efficiency, I can�t help noticing that the 
>> >>> miller indices are saved as float32 in mtz, as all other numbers in mtz. 
>> >>> This certainly have made mtz format a beautiful homogeneous data format 
>> >>> ;).  In this particular case, if we have doubts about the reliability of 
>> >>> the machine stamp, trying to restore the miller indices would be a good 
>> >>> way to test hypotheses.
>> >>>
>> >>> Zhijie
>> >>>
>> >>>> On Nov 9, 2018, at 9:04 PM, James Holton 
>> >>>> <0000270165b9f4cf-dmarc-requ...@jiscmail.ac.uk<mailto:0000270165b9f4cf-dmarc-requ...@jiscmail.ac.uk>>
>> >>>>  wrote:
>> >>>>
>> >>>> As a beamline scientist I must say I am glad that diffraction image 
>> >>>> data is not usually stored as ASCII text.  In fact, I am slowly warming 
>> >>>> to the idea of storing it as not just binary, but compressed formats.  
>> >>>> Problem, I'm sure will be that it won't be  long before we forget how 
>> >>>> to decompress them, as most of the algorithms we are using aren't all 
>> >>>> that widespread.  Probably around the same time future generations will 
>> >>>> curse us for using ASCII instead of unicode, which is a 16-bit 
>> >>>> standard. I'm sure we will be reviled for limiting ourselves so, just 
>> >>>> to save a factor of two in disk space.
>> >>>> In situations like this I always use the unix "od" command.  It makes 
>> >>>> everything "human readable" by converting the bytes into strings you 
>> >>>> can read.  Then it is just a matter of figuring out what the bytes are.
>> >>>> Unfortunately, "od" only decodes floats on the native platform, so if 
>> >>>> the mtz is from another platform (Windows vs Linux, for example), then 
>> >>>> you might need to do some swapping.  Thus far, I have encountered files 
>> >>>> that require one of a few swapping strategies in order to make them 
>> >>>> work:
>> >>>>
>> >>>> 1 2 3 4 - no swapping
>> >>>>
>> >>>> 4 3 2 1 - reverse all bytes
>> >>>>
>> >>>> 3 4 1 2 - swap words and swap bytes within the words
>> >>>> 2 1 4 3 - reverse of previous
>> >>>>
>> >>>> 2-1 1 4 3 - same as last, but if not all zero, decrement byte #2 before 
>> >>>> swapping
>> >>>> 3 4 1 2+1 - same as 3412, but if not all zero increment byte #2 before 
>> >>>> swapping
>> >>>> I'm sure there are other combinations, but the oldest MTZ I have is 
>> >>>> only from 1996.
>> >>>>
>> >>>> -James Holton
>> >>>> MAD Scientist
>> >>>>
>> >>>>
>> >>>>> On 11/9/2018 4:47 AM, Eleanor Dodson wrote:
>> >>>>> Anyone any idea what to do about this?? Created in 1992!!
>> >>>>> Seems unreadable..
>> >>>>>
>> >>>>> No CTYP lines input for file:  1
>> >>>>>    Indices output even if all data items flagged "missing"
>> >>>>> Warning, NOT all LABOUT data lines given
>> >>>>> Warning: Machine stamp corrupted? Assuming native format.
>> >>>>>>>>>>> CCP4 library signal library_file:End of File (Error)
>> >>>>>
>> >>>>>
>> >>>>> To unsubscribe from the CCP4BB list, click the following link:
>> >>>>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >>>>>
>> >>>>
>> >>>>
>> >>>> To unsubscribe from the CCP4BB list, click the following link:
>> >>>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >>>>
>> >>>
>> >>> To unsubscribe from the CCP4BB list, click the following link:
>> >>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >>>
>> >>
>> >>          Research Specialist @ Gonen Lab
>> >> ____________________________________________________
>> >>      UCLA * 615 Charles E. Young Drive South
>> >>         BSRB #347 * Los Angeles, CA 90095
>> >>
>> >> ########################################################################
>> >>
>> >> To unsubscribe from the CCP4BB list, click the following link:
>> >> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >
>> >########################################################################
>> >
>> >To unsubscribe from the CCP4BB list, click the following link:
>> >https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >
>> >________________________________
>> >
>> >To unsubscribe from the CCP4BB list, click the following link:
>> >https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >
>> >########################################################################
>> >
>> >To unsubscribe from the CCP4BB list, click the following link:
>> >https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> >
>> 
>> ########################################################################
>> 
>> To unsubscribe from the CCP4BB list, click the following link:
>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> 
>> To unsubscribe from the CCP4BB list, click the following link:
>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
>> 
> 
> 
> To unsubscribe from the CCP4BB list, click the following link:
> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> 
> 
> To unsubscribe from the CCP4BB list, click the following link:
> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> 
> <semioxyhb_tstate_BetaCobalt.mtz>


########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1

Reply via email to