По сути, у меня есть скрипт для создания ха sh для COG с соответствующими идентификаторами генов:
# Open directory and get all the files in it
opendir(DIR, "/my/path/to/COG/");
my @infiles = grep(/OG-.*\.fasta/, readdir(DIR));
closedir(DIR);
# Create hash for COGs and their corresponding gene IDs
tie my %ids_for, 'Tie::IxHash';
if (! -e '/my/path/to/COG/COG_hash.ref') {
for my $infile (@infiles) {
## $infile
%ids_for = (%ids_for, read_COG_fasta($infile));
}
## %ids_for
store \%ids_for, '/my/path/to/COG/COG_hash.ref';
}
my $id_ref = retrieve('/my/path/to/COG/COG_hash.ref');
%ids_for = %$id_ref;
## %ids_for
Проблема не в том, что он не работает (по крайней мере, я так думаю), но это очень медленно по какой-то причине. Когда я пытался протестировать его, мне потребовались недели, чтобы получить реальный результат. Каким-то образом создание ha sh действительно очень медленное, и я уверен, что есть способ оптимизировать его, чтобы он работал быстрее.
В идеале пути должны быть входными данными сценария, чтобы не было необходимости постоянно менять сценарий в случае изменения пути.
Было бы также хорошо, если бы способ увидеть прогресс создания ха sh, например, показать, что оно выполнено на 25%, выполнено на 50%, выполнено на 75% и в конечном итоге на 100%. Что касается этого последнего пункта, я видел такие вещи, как use Term::ProgressBar
, но я не уверен, будет ли это уместно в этом случае.