這篇文章主要為大家介紹了Python腳本提取fasta文件單序列信息實現示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
此篇文章關鍵給大家介紹了Python腳本制作獲得fasta文件單編碼序列信息內容完成實例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪
Python腳本制作編寫
應用Python對fasta格式編碼序列開展基本資料統計分析
預估設計方案導出文件中包括fasta文件名,編碼序列長短,GC成分及其ATCG分別含量。
應用文件
test.fasta
stat.py
輸入sys模塊
#!/usr/bin/env python import sys
從命令行獲得文件名稱
file_fasta=sys.argv[1] #獲得文件名 file_name=file_fasta.split('.') name=file_name[0]
sys.argv[1]模塊是從程序外部獲取參數的橋梁,可以將命令行的參數輸入到py程序內。
sys.argv[0]是程序本身,sys.argv[1]是程序后跟著第一個參數。
我們將要文件夾名稱做為輸入數據,這步最后運行有展現。
在完畢導出的時候會導出1個包括統計信息的txt文件,我們將要用fasta文件名做為txt文件的作為前綴,因此我們必須獲得fasta文件的名稱。
.split('.')是把file_fasta以.為分節符分離會形成'test','txt',取值給file_name則file_name會蘊含著兩個字符。
file_name[0]乃是取首個值'test',python中默認設置首個數是0,所以無法鍵入1。
開展編碼序列數據匯總的函數公式
編碼序列長度非常好統計分析使用len函數就可以,可是GC成分和ACTG的百分比換算必須費點事兒。
使用def制做一個函數
Python使用def開始函數定義,緊接著是函數名,括號內部為函數的參數,內部為函數的具體功能完成代碼
def get_info(chr): chr=chr.upper() count_g=chr.count('G') count_c=chr.count('C') count_a=chr.count('A') count_t=chr.count('T')
命名這個函數為get_info,內部參數為chr
在咱們會將fasta中ATCG的堿基內容賦值給chr,堿基可能有大寫有小寫,所以我們使用.upper將所以字符變成大寫。
再使用.count('G')統計ATCG各自的數量并賦值給對應count_g,我們用ATCG各自的統計數可以在后面計算中免疫N值干擾。
gc=(count_g+count_c)/(count_a+count_t+count_c+count_g) A=(count_a)/(count_a+count_t+count_c+count_g) T=(count_t)/(count_a+count_t+count_c+count_g) C=(count_c)/(count_a+count_t+count_c+count_g) G=(count_g)/(count_a+count_t+count_c+count_g) gc_con='{:.2%}'.format(gc) A_content='{:.2%}'.format(A) T_content='{:.2%}'.format(T) C_content='{:.2%}'.format(C) G_content='{:.2%}'.format(G) return(gc_con,A_content,T_content,C_content,G_content)
gc含量計算其等于(G的數量+C的數量)/(A的數量+T的數量+C的數量+G的數量)
A的含量等于(A的數量)/(A的數量+T的數量+C的數量+G的數量),其他值的計算以此類推。
.format使用:
"{1}{0}{1}".format("hello","world")設置指定位置。
'world hello world'
{:.2f}保留小數點后兩位
最后,使用return返回函數結果(gc_con,A_content,T_content,C_content,G_content)
進行函數計算
#進行函數計算 with open(file_fasta,'r')as read_fa:
讀取文件內容賦值給read_fa
python中有兩個方式打開文件一種是直接使用open("test.fasta","r"),執行完以后f.close()關閉。
注釋:"r"只讀模式打開文件;"w"以只寫模式打開文件,這種模式下輸入內容會覆蓋原有內容;"a"以追加模式打開一個文件,這個模式會把新內容追加到原有內容的末尾,不會覆蓋。
這里使用的是第二方式with內置函數,它可以將文件自動關閉。
for val in read_fa: val=val.strip() if not val.startswith(">"): seq_info=get_info(val) len_fasta=len(val)
將read_fa內容賦值給val。
strip()方法用于移除字符串頭尾指定的字符(默認為空格或換行符),這里使用默認。
然后使用startswith()方法用于檢查字符串是否是以指定子字符串開頭,在當不是>開頭的行時候,才對核酸序列才進行信息統計。
len()方法返回字符長度獲得片段長度
結果屏幕展示
#結果屏幕展示
print('******n{0}nlength:{1}ngc content:{2}nA content:{3}nT content:{4}nC content:{5}nG content:{6}n******'.format(name,len_fasta,seq_info[0],seq_info[1],seq_info[2],seq_info[3],seq_info[4]))
使用n進行換行,用.format指定值輸出位置。
結果輸出文件
os.write(fd,str)
write()方法用于寫入字符串到文件描述符fd
#結果輸出文件
file_output=open("{}sum.txt".format(name),'a') file_output.write('******n') file_output.write('{}n'.format(name)) file_output.write('length:{:d}n'.format(len_fasta)) file_output.write('gc content:{}n'.format(seq_info[0])) file_output.write('A content:{}n'.format(seq_info[1])) file_output.write('T content:{}n'.format(seq_info[2])) file_output.write('C content:{}n'.format(seq_info[3])) file_output.write('G content:{}n'.format(seq_info[4])) file_output.write('******') file_output.close()
腳本運行
執行腳本(linux系統)
使用ls命令可以看到當前目錄下有已經寫好的py文件以及數據test.fasta。
運行時注意我們編寫時設置從命令行獲得文件名稱,所以要在后面跟上fasta文件,這樣才能成功運行。
運行結束后可以看見屏幕上有結果的打印,同時也生成了testsum.txt。
使用cat命令查看可以看到結果。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128694.html
此篇文章關鍵給大家介紹了應用Python腳本制作獲取基因組測序指定位置編碼序列的實例詳細說明,感興趣的小伙伴值得借鑒參考一下,也希望能有一定的幫助,祝愿大家多多的發展,盡早漲薪 前言 在基因組分析中,大家常常會有這樣一個要求,便是在一個fasta文件中獲取某些編碼序列出去。有時候這種編碼序列注定是完備的編碼序列,而有時候只是為原fasta文件中某一段編碼序列中的一部分。尤其是當信息量許多時,應...
本文關鍵給大家介紹了Python完成GB文件格式編碼序列編碼序列Fasta文件類型實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家盡可能發展,盡早工作上得到晉升 GB文件類型和FASTA文檔詳細介紹 在生物學中會有將GB文件格式編碼序列編碼序列成Fasta文件類型的需要,接下來我們運用python腳本制作來解決這些問題。 gb格式文檔是GenBank的文檔,用...
本文主要是給大家介紹了python從gbff文件上直接獲取cds編碼序列實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪。 什么叫GBFF文檔 GenBank純文本文件類型(GenBankflatfile,通稱GBFF) GBFF是GenBank數據庫系統的相關信息企業 GBFF編碼序列文檔由單獨的編碼序列具體內容構成。 編碼序列具體內...
在預估中,腳本制作這一詞用以泛指包括訂單信息邏輯性編碼序列的文件或腳本文件,接下來本文關鍵為大家介紹了有關python運行腳本文件信息三種方式,原文中根據案例編碼推薦的十分詳盡,必須的小伙伴可以借鑒一下 python腳本執行的3種方式: (尋找自己可以使用的辦法,可用的辦法就是好辦法) 步驟一:交互方式立即實行句子 交互方式下立即撰寫實行Python句子,也不用再建立腳本文件 Win...
摘要:它是一門解析型的語言,何為解析型語言呢就是在運行時通過解析器將源代碼一行行解析成機器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進制指令,生成一個可執行的程序。 ...
閱讀 926·2023-01-14 11:38
閱讀 899·2023-01-14 11:04
閱讀 758·2023-01-14 10:48
閱讀 2063·2023-01-14 10:34
閱讀 965·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 590·2023-01-14 10:02