Я создаю конвейер python для работы с очень большими двоичными файлами (то есть, более 50 ГБ). Это файлы BAM, тип формата, используемый для представления геномов. Мой сценарий в настоящее время ограничен двумя очень дорогими в вычислительном отношении вызовами подпроцесса.
Эти две команды занимают ~ 80% времени вычислений при каждом запуске конвейера, поэтому мне нужно найти способ ускорить этот процесс. Они читают данные из того же файла. Я хотел бы знать лучший путь вперед, чтобы сделать это более эффективным. В принципе, есть ли конкретный вариант параллелизма, который будет работать лучше всего? Или есть другой интересный способ сделать это?
Спасибо!
Команда:
subprocess.call ('samtools view -b -f 68 {}> {} _ unmapped_one.bam'.format (self.file_path, self.file_prefix), shell = True)
subprocess.call ('представление samtools -b -f 132 {}> {} _unmapped_two.bam'.format (self.file_path, self.file_prefix), shell = True)