相关疑难解决方法(0)

Socket recv,sysread和Posix :: read在套接字中的区别?

我发现至少有3种方法可以从perl中的非阻塞套接字中读取

$socket->recv
$socket->sysread
POSIX::read($socket,...
Run Code Online (Sandbox Code Playgroud)

看起来像3个不同的名字到同一个东西,我读了文件,但我找不到一个巨大的不同.任何人?

perl

3
推荐指数
1
解决办法
1253
查看次数

计算数百GB数据的子序列

我正在尝试处理一个非常大的文件,并计算文件中某个长度的所有序列的频率.

为了说明我在做什么,请考虑一个包含序列的小输入文件 abcdefabcgbacbdebdbbcaebfebfebfeb

下面,代码读取整个文件,并获取长度为n的第一个子字符串(低于我将其设置为5,尽管我希望能够更改它)并计算其频率:

abcde => 1
Run Code Online (Sandbox Code Playgroud)

下一行,它向右移动一个字符,并执行相同的操作:

bcdef => 1
Run Code Online (Sandbox Code Playgroud)

然后它继续执行其余的字符串并打印5个最常见的序列:

open my $in, '<', 'in.txt' or die $!; # 'abcdefabcgbacbdebdbbcaebfebfebfeb'

my $seq = <$in>; # read whole file into string
my $len = length($seq);

my $seq_length = 5; # set k-mer length
my %data;

for (my $i = 0; $i <= $len - $seq_length; $i++) {
     my $kmer = substr($seq, $i, $seq_length);
     $data{$kmer}++;
}

# print the hash, showing only the 5 most frequent k-mers
my $count = …
Run Code Online (Sandbox Code Playgroud)

memory perl substring large-files

3
推荐指数
1
解决办法
356
查看次数

标签 统计

perl ×2

large-files ×1

memory ×1

substring ×1