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.
When using a stand-alone BUSTER distribution, the lmr command throws an error
Use of uninitialized value $mtzana in concatenation (.) or string at ...
This does not happen for a combined installation of all our software (as available to Global Phasing comnsortium members). The solution is to change line 233 in $BDG_home/scripts/lmr from
$mtzana = IPCcmdcanrun( $ENV{"BDG_home"} . "/autoPROC/bin/$archname/mtzana" );
to
$mtzana = IPCcmdcanrun( $ENV{"BDG_home"} . "/autoBUSTER/bin/$archname/mtzana" );
If you get an error when running buster-report
ModuleNotFoundError: No module named 'imp'
you probably need to install e.g. on Ubuntu/Debian systems:
sudo apt install python3-zombie-imp
When refining a model with hydrogens using CCP4 on MacOS (and probably only with newer Apple Silicon chips), "refine" might stall at teh call to the CCP4 program "crossec" due to some numerical issue. Until this is fixed in CCP4, you can skip the use of crossec by adding
refine ... AutomaticFormfactorCorrection=no AutomaticFormfactorCorrectionAnalyse=no ...
to your command-line.
When running Rhofit using
rhofit ... -allclusters ...
the number of fitted ligands placed into the final merged.pdb file can be incorrect in cases where several binding sites are encountered. The fix is to change line 2035 in $BDG_home/scripts/rhofit from
$clusters_to_search = $#clusters;
to
$clusters_to_search = $#clusters + 1;