1 the only
2 significant
3 part
4 is
5 a
6 number
7 before
8 the
9 first
10 space
11 character
####
#!/usr/bin/perl
use strict;
use warnings;
my %matrix;
my %sum;
#inport file names
my $fn = $ARGV[0];
chomp $fn;
open (my $FILE, $fn) or die "Can't open file \"$fn\"\n\n";
chomp(my @line = <$FILE>);
my $n;
for ($n=0; $n;
my @all_kmer;
my $kmer;
foreach $kmer (@kmers){
my @split = split(/\s+/,$kmer); #obtain kmer reference number
# for now we don't have to populate the big %matrix, commented
# $matrix{$n}{split[0]} = 1;
$sum{$split[0]}++;
}
close $KMER;
}
close $FILE;
#creat outfile
my $outfile = $ARGV[1];
open (my $OUT, '>' .$outfile) or die "\nUnable to create $outfile\n";
#sum up
foreach my $k (keys %sum){
print $OUT "$sum{$k}\n";
}
####
CREATE DATABASE kmers;
CREATE TABLE matrix (file int, number int, key (file), key (number));
####
use DBI;
my $dbh = DBI->new('DBI:mysql:database=kmers;host=127.0.0.1','mysql_user','');
my $query = "INSERT INTO matrix VALUES (?,?)";
my $sth = $dbh->prepare($query);
for ($n=0; $n;
my @all_kmer;
my $kmer;
foreach $kmer (@kmers){
my @split = split(/\s+/,$kmer); #obtain kmer reference number
# for now we don't have to populate the big %matrix, commented
# $matrix{$n}{split[0]} = 1;
# $sum{$split[0]}++;
$sth->execute($n,$split[0]);
}
close $KMER;
}
$sth->finish();
####
my $count_query = "SELECT number,COUNT(number) FROM matrix GROUP BY number ORDER BY number";
$sth = $dbh->prepare($count_query);
####
#sum up
#foreach my $k (keys %sum){
# print $OUT "$sum{$k}\n";
#}
$sth->execute();
while (my $res = $sth->fetchrow_arrayref()) {
print $OUT $res->[1]\n";
}