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)

Сбой происходит периодически, иногда на одних и тех же входных файлах. Моя общая процедура выглядит следующим образом:

  1. Используйте bowtie для создания файла.sam из файла.fastq, используя пользовательский индекс bowtie
  2. Используйте samtools для преобразования моего.sam в.bam, сортируя и индексируя файл по пути
  3. Выполните следующие команды 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";
}

На сегодняшний день я пробовал следующее:

  1. Увеличено количество разрешенных открытых файлов (ulimit -n)
  2. Увеличено количество разрешенных подпроцессов
  3. Увеличен лимит буферов трубы
  4. Увеличено пространство подкачки

Любые предложения будут с благодарностью. Спасибо!

0 ответов

Другие вопросы по тегам