我有「.fastq」格式的2〜59GB文本文件。 fastq文件是基因組學讀取來自音序器的文件。每4行是一個新的讀取,但行數是可變的。跳過59GB fastq文件的前半部分處理後半部分:逐行閱讀還是fgetpos?
的文件大小是大致59GB,並且有大約211M reads--這意味着,給予或採取,approximatley 211M * 4 = 844M線。我使用的程序,蝴蝶結,目前已做到以下選項的能力:
「--skip 105M --qupto 105M」
這基本上意味着「跳過第一105M讀取並只處理了到下一個105M的讀數。「通過這種方式可以分解文件的處理。問題是,它跳過的方式非常慢。它通常會讀取前105M的讀數,但不處理它們。然後一旦達到它給出的讀取值,它就開始比較。
我想知道如果我可以使用像C/C++的fsetpos這樣的位置來設置文件中間的位置[或任何地方],我可能會把我放在一行中間的某個位置,然後從那裏找到第一個完整讀取的開始處理,而不是等待它讀取大約422M行,直到它到達需要去的地方。有沒有人有過在如此龐大的文件上做fsetpos的經驗,並且知道性能是否比它目前正在做的更好?
Thanks-- 尼克
你怎麼知道你在哪條線上?打開一本隨機的書,在其中一頁上找到任意字母。那封信之前有多少句話? – Joe
你可以用一些東西來預處理文件到多個文件中,這樣做只需一次?不知道它有多大幫助,但如果你有兩個以上的塊,它可以節省多餘的雙線閱讀。 – Joe
你爲什麼不試試看看它是如何工作的? –