genome / gms

The Genome Modeling System installer
https://github.com/genome/gms/wiki
GNU Lesser General Public License v3.0
78 stars 22 forks source link

clin-seq build fails due to missing software: circos #121

Closed malachig closed 10 years ago

malachig commented 10 years ago

Since the merge, a new component, 'Create a Circos plot using MakeCircosPlot', was added to the clin-seq workflow. This step throws the following error:

2014-03-07 10:29:02-0600 clia1: RUN: sort -rnk 102 /opt/gms/9Z75C74/fs/9Z75C74/info/model_data/18177dd5eca44514a47f367d9804e17a/build1b651518dfc240e7b028076f9fad542b/TST1/circos/raw/genes_AmpDel.catanno.txt|head -100 |cut -d "      " -f 1-4  > /opt/gms/9Z75C74/fs/9Z75C74/info/model_data/18177dd5eca44514a47f367d9804e17a/build1b651518dfc240e7b028076f9fad542b/TST1/circos/data/genes_AmpDel.catanno.sorted.txt
2014-03-07 10:29:02-0600 clia1: ERROR: SIGPIPE was recieved by command but IGNORED! cmd: 'sort -rnk 102 /opt/gms/9Z75C74/fs/9Z75C74/info/model_data/18177dd5eca44514a47f367d9804e17a/build1b651518dfc240e7b028076f9fad542b/TST1/circos/raw/genes_AmpDel.catanno.txt|head -100 |cut -d " " -f 1-4  > /opt/gms/9Z75C74/fs/9Z75C74/info/model_data/18177dd5eca44514a47f367d9804e17a/build1b651518dfc240e7b028076f9fad542b/TST1/circos/data/genes_AmpDel.catanno.sorted.txt' in Genome::Model::ClinSeq::Command::MakeCircosPlot at /opt/gms/9Z75C74/sw/genome/lib/perl/Genome/Model/ClinSeq/Command/MakeCircosPlot.pm line 749
2014-03-07 10:29:02-0600 clia1: ERROR: Failed to find app circos (package circos) at version 0.64!
2014-03-07 10:29:02-0600 clia1: Command module died or returned undef.
2014-03-07 10:29:02-0600 clia1: Failed to find app circos (package circos) at version 0.64! at /opt/gms/9Z75C74/sw/genome/lib/perl/Genome/Sys.pm line 368.
2014-03-07 10:29:02-0600 clia1:         Genome::Sys::sw_path('Genome::Sys', 'circos', 0.64) called at /opt/gms/9Z75C74/sw/genome/lib/perl/Genome/Model/ClinSeq/Command/MakeCircosPlot.pm line 866

We need to add circos plot to the sGMS. Within TGI we see this:

perl -e 'use Genome; $path_to_circos_executable = Genome::Sys->sw_path("circos","0.64"); print "\n\n$path_to_circos_executable\n\n"'

/usr/bin/circos0.64

For reference: Genome/Sys.pm

    335 sub sw_path {
    336     my ($class, $pkg_name, $version, $app_name) = @_;
    337     $app_name ||= $pkg_name;
    338 
    339     unless ($version) {
    340         die "Genome::Sys swpath must be called with a pkg name and a version. The optional executable name defaults to the pkg_name. §
    341             "Use the version 'latest' for the latest installed version.";
    342     }
    343 
    344     # check the default path for the app
    345     my %map = $class->sw_version_path_map($pkg_name, $app_name);
    346     my $path = $map{$version};
    347     if ($path) {
    348         return $path;
    349     }
    350 
    351     # older legacy software has an unversioned executable
    352     # this is only supported if the version passed in is "latest"
    353     $path = `which $app_name`;
    354     if ($path = `which $app_name`) {
    355         # unversioned install
    356         # see if it's a symlink to something in a versioned tree
    357         chomp $path;
    358         $path = readlink($path) while -l $path;
    359         if ($version eq 'latest') {
    360             return $path;
    361         }
    362         else {
    363             die $class->error_message("Failed to find $pkg_name at version $version. " .
    364                 "The default version is at $path.");
    365         }
    366     }
    367 
    368     die $class->error_message("Failed to find app $app_name (package $pkg_name) at version $version!");
    369 }

Before proceeding with a fix we need to understand exactly how circos is installed within TGI...

malachig commented 10 years ago

It looks like circos0.64 was added to genome-snapshot-deps in genome-snapshot-deps-apps-external.depend for lucid but not precise.

lucid/changelog: * [76d838e] depend on circos 0.64 lucid/changelog: * [71c2b73] add dependencies for circos lucid/genome-snapshot-deps-apps-external.depends:circos0.64 (>= 0.64-1)

It looks like this issue is therefore also related to issue #119

malachig commented 10 years ago

Relevant RT tickets:

From @bainscou Originally @sakoht just copied it over as can be seen in this RT ticket 94903 https://rt.gsc.wustl.edu/Ticket/Display.html?id=94903

We had another issue with some dependent libraries as referenced in this RT ticket 95760 https://rt.gsc.wustl.edu/Ticket/Display.html?id=95760

malachig commented 10 years ago

One of these RT issues spawned a systems JIRA issue here: https://jira.gsc.wustl.edu/browse/INFOSYS-9016

malachig commented 10 years ago

The good news is that this works in the sGMS:

sudo apt-cache policy circos0.64
circos0.64:
  Installed: (none)
  Candidate: 0.64-1
  Version table:
     0.64-1 0
        900 file:/opt/gms/GSOAC99/sw/apt-mirror-min-ubuntu-12.04-2014.03.07/mirror/repo.gsc.wustl.edu/ubuntu/ lucid-genome-development/main amd64 Packages

sudo apt-get install circos0.64

When I do that I can run /usr/bin/circos0.64

But then I get this warning: You are missing the Perl module Font::TTF::Font. Use CPAN to install it as described in this tutorial

malachig commented 10 years ago

Once again the good news is that this works in the sGMS:

sudo apt-cache policy libfont-ttf-perl
libfont-ttf-perl:
  Installed: (none)
  Candidate: 0.48-1
  Version table:
     0.48-1 0
        990 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
sudo apt-get install libfont-ttf-perl

Now when I run /usr/bin/circos0.64 I get: You are missing the Perl module GD::Polyline. Use CPAN to install it as described in this tutorial

malachig commented 10 years ago

Once again the good news is that this works in the sGMS:

sudo apt-cache policy libgd-graph-perl
libgd-graph-perl:
  Installed: (none)
  Candidate: 1.44-6
  Version table:
     1.44-6 0
        990 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
sudo apt-get install libgd-graph-perl

Now when I run /usr/bin/circos0.64 I don't get any warnings about missing perl modules.

malachig commented 10 years ago

To summarize we need to have each of the following dependencies in genome-snapshot-deps for precise.

genome-snapshot-deps-apps-external.depends:circos0.64 (>= 0.64-1)
genome-snapshot-deps-perl.depends:libfont-ttf-perl (>= 0.48-1)
genome-snapshot-deps-perl.depends:libgd-graph-perl (>= 1.44-3)

It actually looks like only circos0.64 is missing right now, so that should be an easy fix.

malachig commented 10 years ago

Committed this change to genome-snapshot-deps (commit: 2e1d398c126de4351dfe63f76192a810e565e010)

malachig commented 10 years ago

This issue is resolved with updates to genome-snapshot-deps for precise. Circos plots are now successfully generated in clin-seq build run on the sGMS. Closing.