在ngs的下機資料中,我們通常抽取一定比例的fq檔案做分析。在此,筆者提供兩種方式來抽取fq資料。
第一種方法速度較快,但存在一定的隨機誤差。
執行方式:
perl $0 fq檔案抽取比例
#! /usr/bin/perl -w
use strict;
die "#usage:perl $0 \n" unless @argv==2;
my $fa=shift;
my $threshold=shift;
$fa=~/\.gz/?(open in,"gzip -cd $fa|"||die) : (open in,$fa||die);
while() }}
close in;
第二種方法方法滿足了精確抽取,但較第一種方法稍慢一些。用法相同。
#! /usr/bin/perl -w
use strict;
die "#usage:perl $0 \n" unless @argv==2;
my $fa=shift;
my $threshold=shift;
my $num=$fa=~/\.gz/? `gzip -cd $fa|wc -l`/4 :`less $fa|wc -l`/4;
my $need=int($num*$threshold);
my %ha;
for(;;)=1;
last if (keys %ha)==$need;
}$fa=~/\.gz/?(open in,"gzip -cd $fa|"||die) : (open in,$fa||die);
while())
}close in;
生成一定範圍的隨機數
include using namespace std const float maxweight 0.3 const float scaleweight 32767 void main 5.產生一定範圍隨機數的通用表示公式 要取得 a,b 的隨機整數,使用 rand b a a 要取得 a,b 的...
從大檔案中隨機抽取一定資料
在建模的時候,時常需要構造訓練集和測試集,但當總資料比較大的時候,如何進行簡單抽樣也是乙個問題。假設有這樣乙個情況,乙份資料總共有1,000,000條,要從中抽取100,000條左右的資料。每條資料相對比較大,把所有資料一次放入記憶體不靠譜,那麼如何抽樣呢?最齪的方法就是抽取頭100,000或100...
按一定的概率隨機出隨機數(小白記錄)
按一定的概率隨機出隨機數 例如 專案場景 專案需要每天凌晨0點準時發布,農場操作任務 如澆水,施肥,除草,除蟲等,需要按一定的比例隨機出每天的任務操作 public class randomtest if random a random a b if random a b random a b c ...