@INC Error with Perl

I am trying to work with the software package GUIDANCE which utilizes Perl and BioPerl, but every time I run the intended script I hit the following error*:

Can't locate Bio/Perl.pm in @INC (you may need to install the Bio::Perl module) 

(@INC contains: /project/thrash_425/alicecol/phylo/guidance.v2.02/www/Guidance/../Selecton/ /project/thrash_425/alicecol/phylo/guidance.v2.02/www/Guidance/../bioSequence_scripts_and_constants/

I have gcc, perl, bio-perl and ruby all installed as modules, so I’m not sure what I’m missing. Attempts to install the Bio::Perl module using cpanm have also been unsuccessful.

*truncated error message

@alicecol Do you mean you’re using module load gcc/8.3.0 perl perl-bioperl ruby and then installing Guidance from source? Or you have versions of these installed, for example, in a Conda environment and then installing from source?

The BioContainers group has a Docker container available that you could convert to Singularity format in order to use on CARC systems. This might be easier as the development of Guidance seems to have stopped a few years ago.

You can download the container with the following command:

singularity pull docker://biocontainers/guidance2:v2.02_cv1

See our guide for Singularity here: https://carc.usc.edu/user-information/user-guides/software-and-programming/singularity

Within the container, the main Guidance script can be found at /home/biodocker/guidance/www/Guidance/guidance.pl. You would need to bind mount at least two directories to the container: the directory where your input sequence files are as well as the output directory you want to use.

I am using module load gcc perl perl-bioperl ruby and have Guidance installed from source.

The issue seems to be that when I run the guidance.pl script, perl is not interacting with perl-bioperl correctly, i.e. Perl is saying that I don’t have BioPerl installed at all.

Okay, I see. For the perl-bioperl module, there actually is no Bio/Perl.pm file. There is a BioPerl.pm file though. This seems like a versioning issue. I recommend using the container for now if that works for you, but I will look into these issues more.