成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python腳本制作獲得fasta文件單編碼序列信息內(nèi)容完成

89542767 / 555人閱讀

  這篇文章主要為大家介紹了Python腳本提取fasta文件單序列信息實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪


  此篇文章關(guān)鍵給大家介紹了Python腳本制作獲得fasta文件單編碼序列信息內(nèi)容完成實(shí)例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪


  Python腳本制作編寫


  應(yīng)用Python對(duì)fasta格式編碼序列開展基本資料統(tǒng)計(jì)分析


  預(yù)估設(shè)計(jì)方案導(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]是程序后跟著第一個(gè)參數(shù)。


  我們將要文件夾名稱做為輸入數(shù)據(jù),這步最后運(yùn)行有展現(xiàn)。


  在完畢導(dǎo)出的時(shí)候會(huì)導(dǎo)出1個(gè)包括統(tǒng)計(jì)信息的txt文件,我們將要用fasta文件名做為txt文件的作為前綴,因此我們必須獲得fasta文件的名稱。


  .split('.')是把file_fasta以.為分節(jié)符分離會(huì)形成'test','txt',取值給file_name則file_name會(huì)蘊(yùn)含著兩個(gè)字符。


  file_name[0]乃是取首個(gè)值'test',python中默認(rèn)設(shè)置首個(gè)數(shù)是0,所以無法鍵入1。


  開展編碼序列數(shù)據(jù)匯總的函數(shù)公式


  編碼序列長度非常好統(tǒng)計(jì)分析使用len函數(shù)就可以,可是GC成分和ACTG的百分比換算必須費(fèi)點(diǎn)事兒。


  使用def制做一個(gè)函數(shù)


  Python使用def開始函數(shù)定義,緊接著是函數(shù)名,括號(hào)內(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')


  命名這個(gè)函數(shù)為get_info,內(nèi)部參數(shù)為chr


  在咱們會(huì)將fasta中ATCG的堿基內(nèi)容賦值給chr,堿基可能有大寫有小寫,所以我們使用.upper將所以字符變成大寫。


  再使用.count('G')統(tǒng)計(jì)ATCG各自的數(shù)量并賦值給對(duì)應(yīng)count_g,我們用ATCG各自的統(tǒng)計(jì)數(shù)可以在后面計(jì)算中免疫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含量計(jì)算其等于(G的數(shù)量+C的數(shù)量)/(A的數(shù)量+T的數(shù)量+C的數(shù)量+G的數(shù)量)


  A的含量等于(A的數(shù)量)/(A的數(shù)量+T的數(shù)量+C的數(shù)量+G的數(shù)量),其他值的計(jì)算以此類推。


  .format使用:


  "{1}{0}{1}".format("hello","world")設(shè)置指定位置。


  'world hello world'


  {:.2f}保留小數(shù)點(diǎn)后兩位


  最后,使用return返回函數(shù)結(jié)果(gc_con,A_content,T_content,C_content,G_content)


  進(jìn)行函數(shù)計(jì)算


  #進(jìn)行函數(shù)計(jì)算
  with open(file_fasta,'r')as read_fa:


  讀取文件內(nèi)容賦值給read_fa


  python中有兩個(gè)方式打開文件一種是直接使用open("test.fasta","r"),執(zhí)行完以后f.close()關(guān)閉。


  注釋:"r"只讀模式打開文件;"w"以只寫模式打開文件,這種模式下輸入內(nèi)容會(huì)覆蓋原有內(nèi)容;"a"以追加模式打開一個(gè)文件,這個(gè)模式會(huì)把新內(nèi)容追加到原有內(nèi)容的末尾,不會(huì)覆蓋。


  這里使用的是第二方式with內(nèi)置函數(shù),它可以將文件自動(dòng)關(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()方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符),這里使用默認(rèn)。


  然后使用startswith()方法用于檢查字符串是否是以指定子字符串開頭,在當(dāng)不是>開頭的行時(shí)候,才對(duì)核酸序列才進(jìn)行信息統(tǒng)計(jì)。


  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進(jì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()


  腳本運(yùn)行


  執(zhí)行腳本(linux系統(tǒng))

01.png

  使用ls命令可以看到當(dāng)前目錄下有已經(jīng)寫好的py文件以及數(shù)據(jù)test.fasta。


  運(yùn)行時(shí)注意我們編寫時(shí)設(shè)置從命令行獲得文件名稱,所以要在后面跟上fasta文件,這樣才能成功運(yùn)行。


  運(yùn)行結(jié)束后可以看見屏幕上有結(jié)果的打印,同時(shí)也生成了testsum.txt。


  使用cat命令查看可以看到結(jié)果。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128694.html

相關(guān)文章

  • 應(yīng)用Python腳本制作獲取基因組測序指定位置編碼序列

    此篇文章關(guān)鍵給大家介紹了應(yīng)用Python腳本制作獲取基因組測序指定位置編碼序列的實(shí)例詳細(xì)說明,感興趣的小伙伴值得借鑒參考一下,也希望能有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪  前言  在基因組分析中,大家常常會(huì)有這樣一個(gè)要求,便是在一個(gè)fasta文件中獲取某些編碼序列出去。有時(shí)候這種編碼序列注定是完備的編碼序列,而有時(shí)候只是為原fasta文件中某一段編碼序列中的一部分。尤其是當(dāng)信息量許多時(shí),應(yīng)...

    89542767 評(píng)論0 收藏0
  • Python完成GB文件格式編碼序列編碼序列Fasta文件類型

      本文關(guān)鍵給大家介紹了Python完成GB文件格式編碼序列編碼序列Fasta文件類型實(shí)例詳細(xì)說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家盡可能發(fā)展,盡早工作上得到晉升  GB文件類型和FASTA文檔詳細(xì)介紹  在生物學(xué)中會(huì)有將GB文件格式編碼序列編碼序列成Fasta文件類型的需要,接下來我們運(yùn)用python腳本制作來解決這些問題?! b格式文檔是GenBank的文檔,用...

    89542767 評(píng)論0 收藏0
  • python從gbff文件上直接獲取cds編碼序列

      本文主要是給大家介紹了python從gbff文件上直接獲取cds編碼序列實(shí)例詳細(xì)說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪?! ∈裁唇蠫BFF文檔  GenBank純文本文件類型(GenBankflatfile,通稱GBFF)  GBFF是GenBank數(shù)據(jù)庫系統(tǒng)的相關(guān)信息企業(yè)  GBFF編碼序列文檔由單獨(dú)的編碼序列具體內(nèi)容構(gòu)成。  編碼序列具體內(nèi)...

    89542767 評(píng)論0 收藏0
  • python運(yùn)行腳本文件信息三種方式案例

      在預(yù)估中,腳本制作這一詞用以泛指包括訂單信息邏輯性編碼序列的文件或腳本文件,接下來本文關(guān)鍵為大家介紹了有關(guān)python運(yùn)行腳本文件信息三種方式,原文中根據(jù)案例編碼推薦的十分詳盡,必須的小伙伴可以借鑒一下  python腳本執(zhí)行的3種方式: ?。▽ふ易约嚎梢允褂玫霓k法,可用的辦法就是好辦法)  步驟一:交互方式立即實(shí)行句子  交互方式下立即撰寫實(shí)行Python句子,也不用再建立腳本文件  Win...

    89542767 評(píng)論0 收藏0
  • Python從入門到精通】五萬六千字對(duì)Python基礎(chǔ)知識(shí)做一個(gè)了結(jié)吧?。ǘ耍局档檬詹亍?/b>

    摘要:它是一門解析型的語言,何為解析型語言呢就是在運(yùn)行時(shí)通過解析器將源代碼一行行解析成機(jī)器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進(jìn)制指令,生成一個(gè)可執(zhí)行的程序。 ...

    leeon 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<