# "Make_fragments.pl" can't connect to dependencies links

3 posts / 0 new
"Make_fragments.pl" can't connect to dependencies links
#1

Dear fellows,

I am studying to generate fragments for structure prediction ab initio locally, on my laptop (OS - Linux OpenSUSE), with a help of appropriate script "make_fragments.pl". I met with several problems during its running.

Firstly, "make_fragments.pl" can not connect to dependencies links. When I run such command, as "~/rosetta_bin_linux_2019.22.60749_bundle/tools/fragment_tools/make_fragments.pl name.fasta >& make_fragments.local", it gives me such error:

"Resolving www.ncbi.nlm.nih.gov (www.ncbi.nlm.nih.gov)... 130.14.29.110, 2607:f220:41e:4290::110

Connecting to www.ncbi.nlm.nih.gov (www.ncbi.nlm.nih.gov)|130.14.29.110|:80... connected.

HTTP request sent, awaiting response... 301 Moved Permanently

Location: https://www.ncbi.nlm.nih.gov/blast/docs/update_blastdb.pl [following] --2019-08-26 12:52:03-- https://www.ncbi.nlm.nih.gov/blast/docs/update_blastdb.pl

Connecting to www.ncbi.nlm.nih.gov (www.ncbi.nlm.nih.gov)|130.14.29.110|:443... connected.

ERROR! wget http://www.ncbi.nlm.nih.gov/blast/docs/update_blastdb.pl failed."

How I understood, there are problems about foregoing sites. It is looked like, that these sites are expired, or don't exist more. How I can fix these problems with these sites? Creating or downloading API for such dependencies is a good option for 'make_fragments.pl'? Or I should download appropriate databases at "~/rosetta_bin_linux_2019.22.60749_bundle/main/database" or even create a separated database directory in Rosetta?

Secondly, a next part of my problem with "make_fragments.pl" consists in next:

"WARNING! ~/rosetta_bin_linux_2019.22.60749_bundle/tools/fragment_tools/../../main/source/bin/fragment_picker.boost_thread.linuxgccrelease does not exist. Trying default.

ERROR! ~/rosetta_bin_linux_2019.22.60749_bundle/tools/fragment_tools/../../main/source/bin/fragment_picker.default.linuxgccrelease does not exist."

I downloaded such version of Rosetta with binaries, where all default.scripts are replaced by static.scripts. It means, that I should replace "fragment_picker.default.linuxgccrelease" to "fragment_picker.static.linuxgccrelease", in "make_fragments.pl" script, shouldn't I?

I attach some files to this topic.

I will be sincerely grateful for your response and help and I am looking forward to it.

Best regards,

Corvin.

AttachmentSize
420.54 KB
53.14 KB
Post Situation:
Wed, 2019-09-04 23:54
Corvin

Hello

I noticed a few errors

#1. it looks like your csblast installation is failing. make sure your g++ gcc version is 5.4 (maybe 6+ works but I've never tested that)

#2.  judging from your errors, I'd say that your copy of make_fragments.pl and install_dependencies.pl is too old.  the script was updated to now download from ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.9.0+-src.tar.gz

#3. you don't need to change any file names! just set the environment variable FRAGMENT_PICKER to whatever your installation has ie:

>> export FRAGMENT_PICKER="~/rosetta_bin/main/source/bin/fragment_picker.linux.gccrelease"
>> ~/rosetta_bin/tools/fragment_tools/make_fragments.pl myfasta.fasta

(or something like the above)

hopefully downgrading to gcc 5.5/5.4 setting the FRAGMENT_PICKER env variable, and using a newer copy of rosetta will fix these problems.!

Thu, 2019-09-05 07:52
danpf

Dear danpf,

I have tried to fix these problems in according to your advises, but I met with several problems on that way.

Firstly, I found out, that the best option for my OS is gcc-g++ compiler installing on virtual machine. I can not downgrade or install parallel, old version of gcc-compiler, because of such circumstance, that my operation system (Linux OpenSUSE Tumbleweed) is updated constantly and rely on the newest version of gcc-compiler. Downgrading gcc or installation of multiple gcc-versions can cause catastrophic consequences for OS work. Do you know something about fragment_picker.pl running with a help of gcc-compiler, which is installed on virtual machine? If it isn't a good option for Rosetta, how I can install the second, older gcc-version without any negative consequence for my OS?

Secondly, I tried to update fragment_picker.pl script from source, which was mentioned by you via bash.

I carried out such bash-commands, as:

tar xvzf ncbi-blast-2.9.0+-src.tar.gz.

./configure at ~/ncbi-blast-2.9.0+-src/c++/ directory

/usr/bin/make all_r at ~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build directory

And I got such errors:

make[3]: Leaving directory '~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/corelib'

make[3]: *** [~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/Makefile.rules:88: test_boost.o] Error 1

FAILED: src/corelib/Makefile.test_boost.lib

make[3]: Entering directory '~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/corelib'

/bin/rm -f libtest_boost.a .test_boost.dep .libtest_boost.a.stamp

/bin/rm -f ~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/lib/libtest_boost.a /home/ihor/Завантажене/ncbi-blast-2.9.0+-src/c++/ReleaseMT/status/.test_boost.dep \ ~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/lib/libtest_boost-static.a /home/ihor/Завантажене/ncbi-blast-2.9.0+-src/c++/ReleaseMT/status/.test_boost-static.dep

make[3]: Leaving directory '~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/corelib'

make[2]: *** ~/ncbi-blast-2.9.0+-src/c++/src/build-system/Makefile.meta_l:318: all.nonusr] Error 2

make[2]: Leaving directory '~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/corelib'

make[1]: *** [~/ncbi-blast-2.9.0+-src/c++/src/build-system/Makefile.meta_l:276: all_l.real] Error 2

make[1]: Leaving directory '~/ncbi-blast-2.9.0+-src/c++/ReleaseMT/build/corelib'

make: *** [~/ncbi-blast-2.9.0+-src/c++/src/build-system/Makefile.meta_r:41: all_r.real] Error 5

Could you explain, what is wrong with that package or where I made a mistake, please? Should I perform all these activities at fragment_tools directory? How can I update that script correctly via bash or fix that error?

UPD: Installation of gcc-g++ 4.8 instead of 5.4 version is a good option for make_fragments.pl? If I install the second, older version of gcc-g++ compiler, how will I make this script work with a help of the older gcc-compiler instead the new one? Should I write some flag in appropriate bash-command?