У меня есть два текстовых файла, которые имеют схожие форматирование. Первый (732KB):Объединить два больших текстовых файла по общей строке в один файл сопоставления
>lib_1749;size=599;
TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACTATTAAGTCAGCTGTGAAAGTTTGCGGCTCAACCGTAAAATTGCTAGCGGTGAAATGCTTAGATATCACGAAGAACTCCGATTGCGAAGGCAGCTCACTAGACTGTCACTGACACTGATGCTCGAAAGTGTGGGTATCAAACA
--
>lib_2235;size=456;
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACTATTAAGTCAGCTGTGAAAGTTTGCGGCTCAACCGTAAAATTGCTAGCGGTGAAATGCTTAGATATCACGAAGAACTCCGATTGCGAAGGCAGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACA
--
>lib_13686;size=69;
TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCAGGCAAGTCAGAAGTGAAAGCCCGGGGCTCAACCCCGGGGCTGGTAGCGGTGAAATGCGTAGATATTAGGAGGAACACCAGTGGCGAAGGCGGCTTGCTGGACTGTAACTGACACTGAGGCTCGAAAGCGTGGGGAGCAAACA
--
второй (5.26GB):
>Stool268_1 HWI-ST155_0605:1:1101:1194:2070#CTGTCTCTCCTA
TACGGAGGATGCGAGCGTTATCCGGATTTACTGGGTTTAAAGGGAGCGCAGACGGGACGTTAAGTCAGCTGTGAAAGTTTGGGGCTCAACCCTAAAACTGCTAGCGGTGAAATGCTTAGATATCGGGAGGAACTCCGGTTGCGAAGGCAGCATACTGGACTGCAACTGACGCTGATGCTCGAAAGTGTGGGTATCAAACAGG
--
Примечание ключевым отличием является заголовок для каждой записи (lib_1749 против Stool268_1). Мне нужно создать файл сопоставления между заголовками одного файла и заголовками второго, используя последовательность (например, TACGGAGGATGCGAGCGTTATCCGGAT...
) в качестве ключа.
Обратите внимание, что в качестве одного из последних осложнений сопоставление не будет 1-к-1, будет несколько записей формы Stool *** *** для каждой записи библиотеки ****. Это связано с тем, что длина ключа в первом файле была обрезана, чтобы иметь 200 символов, но во втором файле она может быть длиннее.
Для небольших файлов я бы просто сделал что-то подобное в python, но у меня часто возникают проблемы, потому что эти файлы настолько большие и не могут быть прочитаны в памяти за один раз. Обычно я пытаюсь использовать утилиты unix, но в этом случае я не могу придумать, как это сделать.
Спасибо!
Вы можете прочитать большой файл [одна строка в то время] (https://stackoverflow.com/questions/8009882/how-to-read-large-file-line-by-line-in- python) в Python. –
Это было бы выполнено с помощью чего-то вроде MySQL или SQLite – heathobrien