Я работаю над некоторыми большими (несколько миллионов строк) наборами данных биоинформатики в общем формате:
chromosomeNumber locusStart locusStop sequence moreData
У меня есть другие файлы в этом формате:
chromosomeNumber locusStart locusStop moreData
Что янеобходимо иметь возможность считывать по одному файлу каждого типа в память, и если locusStart строки верхнего файла находится между началом и остановкой любой из строк нижнего файла, выведите строку в выходной файл 1.Если locusStart этой строки не находится между началом и концом каких-либо строк в нижнем файле, распечатайте его в выходной файл 2.
В настоящее время я читаю файлы в них, преобразовывая их в словари, на которых написанохромосома с соответствующими линиями в качестве значений.Затем я разделяю каждую строку значения на строку, а затем делаю сравнения со строками.Это занимает невероятно много времени, и я хотел бы знать, есть ли более эффективный способ сделать это.
Спасибо.