Попытался на картинке объяснить в чем суть статистических методов по сравнению с ручными:
Для того, чтобы написать прогу понадобилось всего день посидеть с книгой. Ох, полюбил я перл :)
А вот реализация на перле: use strict; use warnings;
#------------------------------- #---------- Jackknife ---------- #-- Only for fasta input data -- sub jackknife { # Заполнение массива sample оригинальной выборкой my ($input, $output) = @_; if (! open INPUT, "<", $input) { die "Cannot open input file: $!";}
my (@sample, $str, %description, $tmp); $str = ''; $tmp = ''; while () { if (/>/) { $tmp = $_;}
# Создание набора выборок с n-1 элементов my ($i, $j); for ($i = 0; $i < @sample; $i++) { if (! open OUTPUT, ">", $output . '_' . ($i + 1) . '.FST') { die "Cannot create output file: $!";}
for ($j = 0; $j < @sample; $j++) { if ($i ne $j) { print(OUTPUT $description{$sample[$j]} . $sample[$j] . "\n\n");}} close OUTPUT;} } #---------- Jackknife ---------- #-------------------------------
#------------------------------- #---------- Bootstrap ---------- #-- Only for fasta input data -- sub bootstrap { # Заполнение массива sample оригинальной выборкой my ($input, $output) = @_; if (! open INPUT, "<", $input) { die "Cannot open input file: $!";}
my (@sample, $str, %description, $tmp); $str = ''; $tmp = ''; while () { if (/>/) { $tmp = $_;}