先把全部的fasta 序列合併爲一個文件python
cat *.fasta > result_all_Sequence.fastaide
篩選大於90bp的字符串
而後查找其中的GCATit
from glob import glob import os os.chdir("D:\\") file_in = open("result_all_Sequences.fasta", 'r') #定義文件file_in,爲打開文件result_all_Sequences.fasta fa_Con = file_in.read() #.read()是把文件的所有內容讀進來 file_in.close() #.close()是把文件關閉 every_fas = fa_Con.split(">") #.split(">")是指以>爲分隔符把字符串分割爲列表,分割後的列表裏面不會包含>,即分割後>消失 ## 寫入文件 out_file = open("res.fasta", 'w') # w是可寫 for i in every_fas: if i != "": start = i.index("\n") if len(i[start:]) >= 90: out_file.write(">" + i) out_file.close() # 讀取剛剛篩選過的文件 file_in = open("res.fasta", 'r') #定義文件file_in,爲打開文件result_all_Sequences.fasta fa_Con = file_in.read() #.read()是把文件的所有內容讀進來 file_in.close() #.close()是把文件關閉 every_fas = fa_Con.split(">") #.split(">")是指以>爲分隔符把字符串分割爲列表,分割後的列表裏面不會包含>,即分割後>消失 out_file = open("ress.fasta", 'w') ## 查找每條序列的GCAT for i in every_fas: if i != "": start = i.index("\n") #.index("\n")是指顯示\n的位置或下標 #print(i[start:]) # i[start:]是從\n開始一直到最後 seq_con = i[start:] st_1 = seq_con.find("GCAT") if st_1 != -1 and st_1 != len(seq_con) - 4: out_file.write(">" + i[:start+1]+seq_con[st_1+4:]) out_file.close()