issue with conda iphop 1.3.3 and rafah

Issue #78 closed
Zhichao Zhou created an issue

I have installed iphop using this command line:

mamba create -c bioconda -c conda-forge -p /storage1/data11/yml_environments/ViWrap-iPHoP python=3.8 iphop=1.3.3 -y

While, I have encountered this issue with rafah when running your test file:

Dumper.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xed00080)

I guess it is because something is run with the yml env file that determines the iphop running environment.

I was stuck at this and found no way to circumvent it - for example, use an older version

Can you help on this?

Comments (18)

  1. Simon Roux repo owner

    I’m sorry, this is typically an annoying issue, I’ve seen it in the past in cases where there are multiple installations of Perl (often one in the system, and one in Conda), and the tool pick the wrong one.

    The first thing to check is: after “conda activate /storage1/data11/yml_environments/ViWrap-iPHoP”, can you run hmmsearch ? The RaFAH log seems to be stuck at this point, and I’m wondering if the issue is in the RaFAH script or in Hmmsearch.

  2. Simon Roux repo owner

    Ok so this may be a RaFAH issue. Can you try to run the command that is in “rafah.cmd”, without the part after “>”, so we get maybe a bit more information than what is in the log ? What I am confused by is that I don’t see where RaFAH calls the “Dumper” module.

  3. Simon Roux repo owner

    We got a bit more from the standard output though, that’s good. It looks like the step where the error occurs is the “Parsing” one from RaFAH, which relies on Bio::SearchIO. The Perl module Bio::SearchIO itself depends on Data::Dumper, which I suspect is where wires get crossed (i.e. the Perl version from the conda environment is trying to use a version of Data Dumper already installed elsewhere on your system, and the two are incompatible).

    Can you try to install manually perl-data-dumper in the iPHoP conda environment, i.e.

    mamba install -c bioconda -c conda-forge -p /storage1/data11/yml_environments/ViWrap-iPHoP perl-data-dumper
    

  4. Zhichao Zhou reporter

    I used the conda list to see if I have successfully installed “perl-data-dumper“ into my current conda env - and yes:

    perl-data-dumper 2.183 pl5321hec16e2b_1 bioconda

    But the error is the same:

    Dumper.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xed00080)

  5. Simon Roux repo owner

    Ok, so then it’s probably a question of where Perl looks for this library. Can you check two things:

    • What do you get when you try “echo $PERL5LIB” ?
    • Do you have a file named /storage1/data11/yml_environments/ViWrap-iPHoP/etc/conda/activate.d/iphop_activate.sh and what is its content ?

  6. Simon Roux repo owner

    Ok sounds good. So the next step is to verify that the correct Perl libraries are loaded. Can you check:

    • What is in /storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/5.22.0/, especially whether you see “Bio/SearchIO” in there ?
    • Also a “not very clean” way of testing would be to try the following: “export PERL5LIB=/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/5.22.0/:/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/”, then try to re-run rafah (note that this will only change the PERL5LIB path in your current terminal, so probably something to try, and then exit this terminal and open a new one just to keep things clean).

  7. Zhichao Zhou reporter

    The folder “/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/5.22.0/“ does not exist

    And I am running after the export command

  8. Zhichao Zhou reporter

    I found this from my perl folder:

    So I think the pervious perl-data-dumper was actually installed into this place. Should I fix perl to 5.22.0 in the conda building step? For example:

    mamba create -c bioconda -c conda-forge -p /storage1/data11/yml_environments/ViWrap-iPHoP python=3.8 iphop=1.3.3 perl-data-dumper perl=5.22.0

    And this will solve all the problem? or you should also need to change the content of your file - iphop_activate.sh?

  9. Zhichao Zhou reporter

    By the way, I successfully run through it by using “export PERL5LIB=/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/5.22.0/:/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/“ in one of my terminal

  10. Simon Roux repo owner

    Ooh, ok, so that may explain it: the folder I expect is “5.22”, but on your system it seems like 5.32 is the one used. If it works with the shortened PERL5LIB, then you could try to modify the file /storage1/data11/yml_environments/ViWrap-iPHoP/etc/conda/activate.d/iphop_activate.sh and remove {PERL5LIB} at the end of the line 2 (i.e. the line should be “export PERL5LIB=${CONDA_PREFIX}/lib/perl5/site_perl/5.22.0/:/${CONDA_PREFIX}/lib/perl5/site_perl/“). Then deactivate and reactive your conda environment, and you should see the variable PERL5LIB have the correct data (i.e. “/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/5.22.0/:/storage1/data11/yml_environments/ViWrap-iPHoP/lib/perl5/site_perl/”), and the tool should work ?

  11. Zhichao Zhou reporter

    Hi, it seems that I can just simply fix perl=5.22.0 to meet your writings in iphop_activate.sh and re-generate the iphop conda env to run through the whole process. I guess even with {PERL5LIB} at the end, it will be OK, since the perl will use the lib stuff from the front?

  12. Simon Roux repo owner

    Yeah one or the other should work. Hopefully conda behaves nicely enough that fixing perl to 5.22.0 does not create too many issues ! If it does, then we can look into ways to do a better job when generating this “activate.sh” file

  13. Zhichao Zhou reporter

    I checked the log files within Wdir of iPHoP result. It seems that it behaves good under the current conda and perl configs. Many thanks!

  14. Log in to comment