![](/img/trans.png)
[英]Why does my list string removal function work for small lists, but not large ones?
[英]why my code works well on small files but not large ones?
我是編程的初學者,並且嘗試使用python進行數據分析。 我有一些配對末端測序的fastq文件,其中每個讀取(數據)都有一個互補的讀取,這是分析需要的。
我編寫了以下代碼,以選擇質量得分超過30的讀取。它在小型文件(我已測試高達1 GB)上運行良好,但是當我嘗試在30 GB的實際大小數據上使用它時,給我空文件作為結果。 有人可以告訴我問題是什么嗎? 謝謝!
PS代碼中提到的average()函數可以完美工作。 為了節省空間,我在這里跳過了它。
#enter name of the forward source file here
y=open("file1", "r")
lenght=0
for line in y:
lenght+=1
y.close()
import re
s=0
p=4
#enter name of the forward destination file here
h=open("result1", "w")
#enter name of the reverse destination file here
k=open("result1_complementary", "w")
for turn in range(lenght/4):
#enter name of the forward source file here
a=open("file1", "r")
c=a.readlines()[s:p]
#enter name of the reverse source file here
d=open("file1_complementary", "r")
g=d.readlines()[s:p]
for line in c:
#enter the begining of the index line here
if re.search(r"^@ABC",line):
#enter the cutting Phred score here
if average(c[c.index(line)+3])<30:
del c[0:4]
del g[0:4]
for line in g:
if re.search(r"^@HWI-", line):
if average(g[g.index(line)+3])<30:
del g[0:4]
del c[0:4]
for line in c:
h.write(line)
for line in g:
k.write(line)
s+=4
p+=4
a.close()
d.close()
h.close()
k.close()
感謝大家的意見! 我使用readline()而不是readlines()[s:p]進行迭代,並且效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.