Perl Bio::DB::Sam падает во время вызова get_features_by_id()
Я использую Bio::DB::Sam в среде Centos7, используя samtools версии 0.1.17. Я использую эту процедуру для выполнения моей установки:
wget http://sourceforge.net/projects/samtools/files/samtools/0.1.17/samtools-0.1.17.tar.bz2
tar xjf samtools-0.1.17.tar.bz2 && cd samtools-0.1.17
make CFLAGS=-fPIC
export SAMTOOLS=`pwd`
cpanm Bio::DB::Sam
который я обнаружил здесь (обратите внимание, я изменил версию samtools)
Сбой происходит периодически, иногда на одних и тех же входных файлах. Моя общая процедура выглядит следующим образом:
- Используйте bowtie для создания файла.sam из файла.fastq, используя пользовательский индекс bowtie
- Используйте samtools для преобразования моего.sam в.bam, сортируя и индексируя файл по пути
- Выполните следующие команды Perl:
Perl:
my $sortbam = align_and_sort_and_index($reads_file); # steps 1 and 2
my @all_gene_ids = qw(gene_id1 gene_id2 gene_id3); # really lots more
for (my $worker=0; $worker <= $n_threads; $worker++) {
my $pid = fork;
die "fork error: $!" unless defined $pid;
next if $pid; # parent
my @gene_ids = get_unique_subset(@all_gene_ids, $worker);
my $sam = Bio::DB::Sam->new(-bam=>$sortbam, -fasta=>$ampl_seqfile, -autoindex=>0);
foreach my $gene_id (@gene_ids) {
# THIS NEXT LINE IS THE ONE THAT SEGFAULTS (SOMETIMES):
my @alignments = $sam->get_features_by_location(-seq_id => $gene_id);
# do something interesting with @alignments...
}
exit;
}
while ((my $pid=wait()) != -1) {
print "reaped $pid\n";
}
На сегодняшний день я пробовал следующее:
- Увеличено количество разрешенных открытых файлов (ulimit -n)
- Увеличено количество разрешенных подпроцессов
- Увеличен лимит буферов трубы
- Увеличено пространство подкачки
Любые предложения будут с благодарностью. Спасибо!