Subject: Re: is there a maximum size for pipe2ucsf converstion
From: Tom Goddard
Date: May 28, 2014



Hi Bo,

All of the Sparky distributions (Windows, Mac, Linux) are 32-bit applications and a 32-bit signed integer can only handle file offsets of +/- 2 Gbytes, while an unsigned integer can handle a 4 Gbyte file offset. But a look at Sparky source code indicates that the Linux version used special 64-bit file offsets. So pipe2ucsf may be able to convert files larger than 4 Gbytes on Linux, but it almost certainly won’t work on Windows or Mac.

Unfortunately Sparky was written in the 1990s and early 2000s where 64-bit operating systems were uncommon. Sparky could probably be recompiled without problems on any modern 64-bit machine, but it may be necessary to change some C++ variable declarations from “int to “long”. And on Windows it will be need some special code because long is 32-bits even on 64-bit Windows. Making 64-bit Sparky versions that will handle spectra larger than 4 Gbytes is some significant work (maybe 1 week), and we have no funding to do that.

So use Linux for the file conversions and for analyzing the spectra. The resulting UCSF file is in identical format as on WIndows and Mac but probably will not be usable with those Sparky versions, because their 32-bit offsets won’t allow reading beyond the 4 Gbytes, and crashes will probably result.

Tom


On May 28, 2014, at 12:13 PM, Bo Chen wrote:

Dear sparky,
I found an error using pipe2ucsf while I was processing 3D data conversion from nmrpipe, and it complained Segmentation fault (core dumped).
When I try this with small size file like 770MB(the same experimental spectral, with less number of zero filling which leads to a smaller size) it works fine, but it gives this segmentation fault when I try with bigger size file like 4.0 GB which is desired.

Could you tell us what to do to covert the bigger file?

Thanks a lot!

Bo Chen
Assistant Professor of Physics
Univ of Central Florida
4000 Central Florida Blvd
PS 121, RM 451
Orlando, FL 32816