python根據序列長度篩選序列,查找序列中指定鹼基序列

先把全部的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()
相關文章
相關標籤/搜索