1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
#!/usr/bin/env perl
# Copyright © 2011, Battelle National Biodefense Institute (BNBI);
# all rights reserved. Authored by: Brian Ondov, Nicholas Bergman, and
# Adam Phillippy
#
# See the LICENSE.txt file included with this software for license information.
use strict;
BEGIN
{
use File::Basename;
use Cwd 'abs_path';
use lib dirname(abs_path($0)) . "/../lib";
use KronaTools;
}
setOption('out', 'text.krona.html');
setOption('name', 'all');
my @options =
qw(
out
name
noMag
combine
url
);
getKronaOptions(@options);
if
(
@ARGV < 1
)
{
printUsage
(
'Creates a Krona chart from text files listing quantities and
lineages.',
'text',
'Tab-delimited text file. Each line should be a number followed by a
list of wedges to contribute to (starting from the highest level). If no wedges
are listed (and just a quantity is given), it will contribute to the top level.
If the same lineage is listed more than once, the values will be added.
Quantities can be omitted if -q is specified. Lines beginning with "#" will be
ignored.',
0,
1,
\@options
);
exit 0;
}
my $tree = newTree();
my @datasetNames;
my $set = 0;
foreach my $input ( @ARGV )
{
my ($fileName, $magFile, $name) = parseDataset($input);
if ( ! getOption('combine') )
{
push @datasetNames, $name;
}
open INFILE, "<$fileName" or die $!;
while ( <INFILE> )
{
if ( /^#/ )
{
next;
}
chomp;
my @lineage = split /\t/;
my $magnitude;
if ( getOption('noMag') )
{
$magnitude = 1;
}
else
{
$magnitude = shift @lineage;
}
addByLineage($tree, $set, \@lineage, undef, $magnitude);
}
if ( ! getOption('combine') )
{
$set++;
}
close INFILE;
}
my @attributeNames =
(
'magnitude',
'magnitudeUnassigned'
);
my @attributeDisplayNames =
(
'Total',
'Unassigned'
);
writeTree
(
$tree,
\@attributeNames,
\@attributeDisplayNames,
\@datasetNames
);
|