fastStructure GSL installation after python upgrade

120 views
Skip to first unread message

ann...@smithecology.org

unread,
Oct 25, 2020, 7:35:49 PM10/25/20
to structure-software
Mac 10.15.6

Hello,

My question is, with detail below: is it true that fastStructure requires an old version of GSL (in particular 1.6 as according to this post: https://stackoverflow.com/questions/22222666/error-while-loading-shared-libraries-libgsl-so-0-cannot-open-shared-object-fil)?

I've been using fastStructure successfully since 2015 and have published results from this software. Even up until the first part of this year, I was successfully using it on large SNP data sets.
Until recently....
....when it stopped working after I upgraded to python3. Understanding that fastStructure runs in python2, I re-installed the dependencies so they appear in the python2 package library:
ls /usr/local/lib/python2.7/site-packages
numpy
scipy
Cython

The problem I'm now having is with GSL. I had version 2.6 installed but couldn't find
libgsl.so, libgslcblas.so, and gsl/gsl_sf_psi.h anywhere (not in /usr/local/lib or /usr/local/include as suggested on the instructions, nor in the /usr/local/Cellar/gsl/2.6/lib, etc. folders where brew installs gsl).

The post above suggested that I needed an older (1.6) version of gsl, but installation of this has repeatedly failed. Following the instructions in the install file:
./configure --disable-shared # works, but
make # runs for a couple of minutes and gives error:
> fatal error: 'architecture/ppc/fp_regs.h' file not found

So, should I keep banging my head against the gls1.6 brick wall, or is it actually possible to run fastStructure in newer versions of gsl, such as 2.6. If so, then are the .so files called something else?

Thanks in advance if anyone can shed some light.

Annabel Smith







Francisco Pina Martins

unread,
Oct 28, 2020, 9:25:33 AM10/28/20
to structure-software
Hi Annabel,

I don't have a solution for you, but I have a workaround:
Try using my script `install_faststructure.sh` from *Structure_threader*:

This script will download all the dependencies for faststructure in source form, compile them, and finally compile and install fastStructure. This script was working fine in mid 2019 when I last used it, but I haven't tested it since, so you might run into issues. This script assumes you have both GCC and python2 installed on your machine.
Alternatively you can also use the pre-built binaries by installing *Structure_threader* via pip:

pip3 install structure_threader --user

If you use the first option (the install script), you will end up with a binary under `~/Software/faststructure`. If you use the second option (install *Structure_threader* via pip) you will end up with a binary under `~/.local/bin`.

Best,

Francisco
Reply all
Reply to author
Forward
0 new messages