-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmake_distribution.html
More file actions
104 lines (101 loc) · 3.98 KB
/
make_distribution.html
File metadata and controls
104 lines (101 loc) · 3.98 KB
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
Generating distribution for <% $species %>
<%perl>
my $cloud = new PRFGraph(config => $config);
my $pknots_only = undef;
my $boot_table = "boot_$species";
my $suffix = undef;
foreach my $filter (@filters) {
if ($filter eq 'pseudoknots only') {
$suffix .= "-pknot";
$pknots_only = 1;
}
elsif ($filter eq 'coding sequence only') {
$suffix .= "-cs";
}
}
if ($slipsites eq 'all') {
$suffix .= "-all";
}
else {
suffix .= "-${slipsites}";
}
$suffix .= "-${seqlength}";
my $cloud_output_filename = $cloud->Picture_Filename(type => 'cloud', species => $species, suffix => $suffix,);
my $cloud_url = $cloud->Picture_Filename(type => 'cloud', species => $species, url => 'url', suffix => $suffix,);
$cloud_url = $ENV{PRFDB_HOME} . '/' . $cloud_url;
my ($points, $averages);
my $mt = "mfe_$species";
if (!-f $cloud_output_filename) {
$points = $db->Collect_Cloud(species => $species, seqlength => $seqlength, filters => \@filters);
}
$points_stmt = qq"SELECT $mt.mfe, $boot_table.zscore, $mt.accession, $mt.knotp, $mt.slipsite, $mt.start, genome.genename FROM $mt, $boot_table, genome WHERE $boot_table.zscore IS NOT NULL AND $mt.mfe > -80 AND $mt.mfe < 5 AND $boot_table.zscore > -10 AND $boot_table.zscore < 10 AND $mt.seqlength = $seqlength AND $mt.id = $boot_table.mfe_id AND ";
$averages_stmt = qq"SELECT avg($mt.mfe), avg($boot_table.zscore), stddev($mt.mfe), stddev($boot_table.zscore) FROM $mt, $boot_table WHERE $boot_table.zscore IS NOT NULL AND $mt.mfe > -80 AND $mt.mfe < 5 AND $boot_table.zscore > -10 AND $boot_table.zscore < 10 AND $mt.seqlength = $vars->{seqlength} AND $mt.id = $boot_table.mfe_id AND ";
foreach my $filter (@filters) {
if ($filter eq 'pseudoknots only') {
$points_stmt .= "$mt.knotp = '1' AND ";
$averages_stmt .= "$mt.knotp = '1' AND ";
}
elsif ($filter eq 'coding sequence only') {
$points_stmt .= "";
$averages_stmt .= "";
}
}
$points_stmt .= " $mt.genome_id = genome.id";
$averages_stmt =~ s/AND $//g;
$points = $db->MySelect(statement => $points_stmt, vars => [$species]);
$averages = $db->MySelect(statement => $averages_stmt, vars => [$species], type => 'row',);
# }
my $cloud_data;
my %args;
if (defined($pknots_only)) {
%args = (seqlength => $seqlength,
species => $species,
points => $points,
averages => $averages,
filename => $cloud_output_filename,
url => $ENV{PRFDB_HOME},
pknot => 1,
slipsites => $slipsites
);
}
else {
%args = (
seqlength => $seqlength,
species => $species,
points => $points,
averages => $averages,
filename => $cloud_output_filename,
url => $ENV{PRFDB_HOME},
slipsites => $slipsites,
);
}
$cloud_data = $cloud->Make_Cloud(%args);
}
if ($slipsites ne 'all') {
$vars->{slipsites} = $slipsites;
}
$vars->{map_url} = "$vars->{cloud_url}" . '.map';
$vars->{map_file} = "$vars->{cloud_file}" . '.map';
my $extension_percent_filename = $cloud->Picture_Filename(type => 'extension_percent', species => $species,);
my $extension_codons_filename = $cloud->Picture_Filename(type=> 'extension_codons', species => $species,);
$vars->{percent_map_file} = $extension_percent_filename . '.map';
$vars->{codons_map_file} = $extension_codons_filename . '.map';
if (!-f $extension_codons_filename) {
$cloud->Make_Extension($species, $extension_codons_filename, 'codons', $ENV{PRFDB_HOME});
}
if (!-f $extension_percent_filename) {
$cloud->Make_Extension($species, $extension_percent_filename, 'percent', $ENV{PRFDB_HOME});
}
my $bargraphs = qq"$ENV{PRFDB_HOME}/images/cloud/$species/cloud-bar-percentsig.png";
if (!-f $bargraphs) {
my $cloud_data = $cloud->Make_Cloud(seqlength => $seqlength, species => $species, points => $points,
averages => $averages, filename => qq"$ENV{PRFDB_HOME}/images/cloud/$species/cloud-all-AAAAAAA-100.png",
url => $ENV{PRFDB_HOME}, slipsites => 'AAAAAAA',);
}
</%perl>
<%args>
$species => "saccharomyces_cerevisiae"
$filters => undef
$slipsites => "all"
$seqlength => "100"
</%args>