Я использую Bio::DB::Sam в среде Centos7, используя версию 0.1.17 samtools. Я использую эту процедуру для выполнения моей установки:
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)
Сбой происходит периодически, иногда на одних и тех же входных файлах. Моя общая процедура выглядит следующим образом:
- Используйте бабочку для создания файла .sam из файла .fastq с использованием пользовательского индекса бабочки.
- Используйте samtools для преобразования моего .sam в .bam, попутно сортируя и индексируя файл.
- Введите следующие команды 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)
- Увеличено количество разрешенных подпроцессов
- Увеличен лимит буферов каналов
- Увеличено пространство подкачки
Мы будем очень признательны за любые предложения. Благодарю вас!
fork
, вы увидите ту же проблему? Если это так, это могут быть некоторые идентификаторы генов или файлы BAM, которые искажены. Я бы сначала упростил код, потому что это может быть не модуль. - person SES   schedule 14.06.2017exit
? - person flies   schedule 13.10.2017