There is a buglet in the core Perl interpreter distributed with many OS versions, that produces warning messages of the type
Use of uninitialized value in numeric eq (==) at /usr/lib/x86_64-linux-gnu/perl-base/IO/Select.pm line 68.
Although without effect on the functionality of a "pipedream", "buster-report", "rhofit" or "grade" job, they can still be disconcerting and plain ugly. The easiest solution is to surpress all warning messages from our perl scripts by adding "-X" to the perl invocation. This can be done e.g. by adding
export KeepFromEnv_BDG_perl="yes" export BDG_perl="/usr/bin/perl -X"
to $BDG_home/setup_local.sh and/or
setenv KeepFromEnv_BDG_perl "yes" setenv BDG_perl_arg "-X"
to $BDG_home/setup_local.csh. Another option is to point to a local (distributed) version of Perl by adding
export KeepFromEnv_BDG_perl="yes" case `uname` in Linux) export BDG_perl="$BDG_home/.mc/linux64/3.9/bin/perl";; Darwin) export BDG_perl="$BDG_home/.mc/darwin/3.9/bin/perl";; esac
to $BDG_home/setup_local.sh and/or
setenv KeepFromEnv_BDG_perl "yes" if ( `uname` == "Linux" ) then setenv BDG_perl "$BDG_home/.mc/linux64/3.9/bin/perl" else setenv BDG_perl "$BDG_home/.mc/darwin/3.9/bin/perl" endif
to $BDG_home/setup_local.csh.
Alternatively, one could run the above commands also via e.g.
KeepFromEnv_BDG_perl="yes" BDG_perl_arg="-X" pipedream ... # bash/sh/zsh - or - env KeepFromEnv_BDG_perl="yes" BDG_perl_arg="-X" pipedream ... # tcsh/csh
To see if your particular perl version (as used by our programs) is affected by this issue, you can use the attached test_perl.sh script. Running
./test_perl.sh
could return something like
## ## Testing perl environment/setup for BUSTER (Pipedream, buster-report etc) ## (for helpc contact us at buster-develop@GlobalPhasing.com) ## BDG_home = /home/software/GPhL/BUSTER/20240710 BDG_perl = /usr/bin/perl (v5.34.0 - see "/usr/bin/perl -V" for more details) ### see: https://github.com/Perl/perl5/issues/18238 interaction with IPC::Cmd::run (GH 18238) = >>> WARNING <<< $IO::Select::VERSION = 1.46 $IPC::Cmd::VERSION = 1.04 Perl version = 5.034000 = 5.34.0
(showing vulnerability of Ubuntu 22.04 LTS) or
## ## Testing perl environment/setup for BUSTER (Pipedream, buster-report etc) ## (for helpc contact us at buster-develop@GlobalPhasing.com) ## BDG_home = /home/software/GPhL/BUSTER/20240710 BDG_perl = /bin/perl (v5.36.0 - see "/bin/perl -V" for more details) ### see: https://github.com/Perl/perl5/issues/18238 interaction with IPC::Cmd::run (GH 18238) = OK $IO::Select::VERSION = 1.49 $IPC::Cmd::VERSION = 1.04 Perl version = 5.036000 = 5.36.0
(showing Debian 12 bookworm being fixed).
The bug was introduced (it seems) at v1.42 of Perl's IO::Select and fixed at v1.48 with this bug report.
For both BUSTER and gelly_refine the two options: "qm" and "force_field" are not working as expected. This will be fixed in the next release.
Until then a work around exists if there is only a single uncharged ligand. Simply append an underscore to the three-letter code i.e.
gelly_refine -qm I0G_ ...
and it should work.