큰 파일을 구문 분석하기 위해 파이썬을 사용하고 있습니다. 내가 뭘하고 싶은지파이썬 생성기 표현식 if-else
나는 이것을 위해 메모리를 절약하기 위해 표현을 사용하고 싶다. 나는 실제 코드를 넣고있다.
def is_low_qual(read):
lowqual_bp=(bq for bq in phred_quals(read) if bq < qual_threshold)
if iter_length(lowqual_bp) > num_allowed:
return True
else:
return False
lowqual=(read for read in SeqIO.parse(r_file,"fastq") if is_low_qual(read)==True)
highqual=(read for read in SeqIO.parse(r_file,"fastq") if is_low_qual(read)==False)
SeqIO.write(highqual,flt_out_handle,"fastq")
SeqIO.write(lowqual,junk_out_handle,"fastq")
def iter_length(the_gen):
return sum(1 for i in the_gen)
부수적으로 true/false와 비교하지 마십시오. 'if is_condition_true (r)'과'not is_condition_true (r)'을 사용하십시오. – delnan
델 넌이 맞습니다. 다른 것은 괜찮습니다. – MostafaR
괜찮아 보인다. 실패 했습니까? 그게 당신이 묻는 이유인가요? – inspectorG4dget