lecture code viewer
downloads
Code
Hashes and Sorting
Hashes and Sorting
Martin Krzywinski
#!/usr/local/bin/perl
$\= "\n";
use Data::Dumper;
@bp = qw(a t g c);
@sequences = ();
for (1..1000) {
$seq = "";
for (1..4) {
$seq = qq{$seq$bp[rand(@bp)]};
}
push @sequences, $seq;
}
%sequence_count = ();
for $seq (@sequences) {
$sequence_count{$seq} = $sequence_count{$seq} + 1;
}
for $seq (keys %sequence_count) {
print qq{sequence $seq seen $sequence_count{$seq} times};
}
for $seq (keys %sequence_count) {
if ($seq =~ /aaa|ccc|ggg|ttt/) {
print qq(3-homo polymer sequence $seq seen $sequence_count{$seq} times);
}
}
%bp_count = ();
for $seq (@sequences) {
for $bp (split("",$seq)) {
$bp_count{$bp} = $bp_count{$bp} + 1;
}
}
print Dumper(\%bp_count);
%bp_count = ();
for $seq (keys %sequence_count) {
for $bp (split("",$seq)) {
$bp_count{$bp} = $bp_count{$bp} + $sequence_count{$seq};
}
}
print Dumper(\%bp_count);
$sum = 0;
for $count (values %sequence_count) {
$sum = $sum + $count;
}
print "averge sequence count is ",$sum / keys %sequence_count;
for $seq (sort {$sequence_count{$b} <=> $sequence_count{$a}} keys %sequence_count) {
print qq{sequence $seq seen $sequence_count{$seq} times};
}
|
4 |
Hashes and Sorting |
1.0.1.8.4
1.0.1.8.4.p1 |
Hashes and Sorting
|
Martin Krzywinski
|
ppt
1.0.1.8.4.c1 |
sequences
|
Martin Krzywinski
|
code
1.0.1.8.4.c2 |
sort
|
Martin Krzywinski
|
code
1.0.1.8.4.a1 |
Hashes and Sorting
|
Martin Krzywinski
|
pdf
1.0.1.8.4.a2 |
Hashes and Sorting
|
Martin Krzywinski
|
pdf
1.0.1.8.4.s1 |
Hashes and Sorting
|
Martin Krzywinski
|
slides
|