Если вы хотите просто извлечь подмножество файла .vcf на основе списка вариантов, вы можете
( 1 ) использовать решение, предложенное @OronNavon.Это должно работать по крайней мере с небольшими файлами.При больших размерах файлов это может потребовать большого количества вычислительных ресурсов, что не обязательно является проблемой, если у вас есть доступ к кластеру.Если вы используете его на домашнем ПК, вам может не хватить памяти.Вы можете обойти это, читая файл на лету, но это все еще медленный процесс.Кроме того, вы, вероятно, потеряете заголовок .vcf со всеми метаданными, поэтому, если вам это нужно (или .vcf), вы должны добавить его отдельно.
( 2 ) разбить файл .vcf на куски, которые вы можете запускать параллельно, если хотите.Хотя это будет не так эффективно, как могло бы быть, поскольку у вас есть только rsID, а не места в вашем меньшем файле.
( 3 ) используйте Plink , который представляет собой автономный пакет, но он может выполнять работу быстро / эффективно.(Это то, что я бы сделал.)