BLANCO


Главная » 2010 » Июль » 20 » .perl
.perl
00:17
Попытался на картинке объяснить в чем суть статистических методов по сравнению с ручными:

Для того, чтобы написать прогу понадобилось всего день посидеть с книгой. Ох, полюбил я перл :)

А вот реализация на перле:
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 = $_;}

s/ *//g;
if ($_ eq "\n") {
push @sample, $str;
$description{$str} = $tmp;
$str = '';}

if ( ! />/) {
chomp;
$str .= $_;}}
close INPUT;

# Создание набора выборок с 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 = $_;}

s/ *//g;
if ($_ eq "\n") {
push @sample, $str;
$description{$str} = $tmp;
$str = '';}

if ( ! />/) {
chomp;
$str .= $_;}}
close INPUT;

# Создание набора выборок
my ($i, $j, $number, $index);
$number = @sample * 10; # Количество выборок в наборе

for ($i = 0; $i < $number; $i++) {
if (! open OUTPUT, ">", $output . '_' . ($i + 1) . '.FST') {
die "Cannot create output file: $!";}

for ($j = 0; $j < @sample; $j++) {
$index = int(rand(@sample));
print(OUTPUT $description{$sample[$index]} . $sample[$index] . "\n\n");}
close OUTPUT;}

}
#---------- Bootstrap ----------
#-------------------------------

#jackknife @ARGV;
bootstrap @ARGV;

Автор: Stasundr


Всего комментариев: 4
16.04.2015 Спам
4. Donaldka
lala

03.08.2010 Спам
3. Бур@нчик
Да, сервис для доработки кода. Если разыщу у себя в закладках, дам ссылку.

20.07.2010 Спам
2. Stasundr (Stasundr)
Жаль нарушено форматирование и нет подсветки синтаксиса. Где-то я видел такой сервис... )

20.07.2010 Спам
1. Stasundr (Stasundr)
Под черным ящиком подразумевается ваша прога, например нейронная сеть или просто формула, по которой вы получите свои результаты.

Имя *:
Email *:
Код *:


2007 © Стасундр и Лёнич
Сайт управляется системой uCoz