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