在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Linux學(xué)習(xí)-文件排序和FASTA文件操作

    環(huán)境變量的補(bǔ)充

    PATH只是眾多環(huán)境變量中的一個(gè)變量,用于存儲(chǔ)可執(zhí)行文件所在的目錄,以便在用戶輸入命令時(shí)可以查詢(xún)的到。尤其是自己寫(xiě)的腳本或安裝的程序,系統(tǒng)不會(huì)知道它們?cè)谀膫€(gè)路徑下,需要我們?nèi)ヌ峁┙o系統(tǒng)這些新的路徑,學(xué)名叫設(shè)置環(huán)境變量。

    此外常用到的環(huán)境變量還有LD_LIBARY_PATH: 指定動(dòng)態(tài)鏈接庫(kù) (so文件)的位置,一般在安裝軟件出錯(cuò)時(shí)會(huì)用到;PYTHONPATH: 指定Python的安裝包的路徑;PERL5LIB: 指定perl的安裝包的路徑。

    設(shè)置環(huán)境變量要注意2點(diǎn):1. 設(shè)置新的環(huán)境變量時(shí)一般要包含原始的環(huán)境變量,不能覆蓋;2. 注意自己的目錄和系統(tǒng)環(huán)境變量的目錄的順序,想讓哪個(gè)先被找到,就先放哪個(gè)。

    文件排序

    seq: 產(chǎn)生一系列的數(shù)字; man seq查看其具體使用。我們這使用seq產(chǎn)生下游分析所用到的輸入文件。

    # 產(chǎn)生從1到10的數(shù),步長(zhǎng)為1ct@ehbio:~$ seq 1 1012345678910# 產(chǎn)生從1到10的數(shù),步長(zhǎng)為1,用空格分割ct@ehbio:~$ seq -s ‘ ‘ 1 101 2 3 4 5 6 7 8 9 10# 產(chǎn)生從1到10的數(shù),步長(zhǎng)為2# 如果有3個(gè)數(shù),中間的數(shù)為步長(zhǎng),最后一個(gè)始終為最大值ct@ehbio:~$ seq -s ‘ ‘ 1 2 101 3 5 7 9# 還記得前面提到的標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出吧# 后臺(tái)回復(fù) 標(biāo)準(zhǔn)輸入 查看ct@ehbio:~$ cat <(seq 0 3 17) testct@ehbio:~$ cat test 036912153915

    sort: 排序,默認(rèn)按字符編碼排序。如果想按數(shù)字大小排序,需添加-n參數(shù)。

    # 可能不符合預(yù)期的排序,系統(tǒng)首先排0,然后排1, 3, 6, 9ct@ehbio:~$ sort test012151533699# 按數(shù)字大小排序ct@ehbio:~$ sort -n test033699121515

    sort -u: 去除重復(fù)的行,等同于sort | uniq。

    ct@ehbio:~$ sort -nu test03691215

    sort file | uniq -d: 獲得重復(fù)的行。(d=duplication)

    ct@ehbio:~$ sort -n test | uniq -d3915

    sort file | uniq -c: 獲得每行重復(fù)的次數(shù)。

    # 第一列為每行出現(xiàn)的次數(shù),第二列為原始的行ct@ehbio:~$ sort -n test | uniq -c ?1 0 ?2 3 ?1 6 ?2 9 ?1 12 ?2 15# 換一個(gè)文件看的更清楚ct@ehbio:~$ cat a> b> c> b> a> e> d> a> END# 第一列為每行出現(xiàn)的次數(shù),第二列為原始的行ct@ehbio:~$ sort test2 | uniq -c ? ? ?3 a ? ? ?2 b ? ? ?1 c ? ? ?1 d ? ? ?1 e# 在執(zhí)行uniq操作前,文件要先排序,不然結(jié)果很詭異ct@ehbio:~$ cat test2 | uniq -c ? ? ?1 a ? ? ?1 b ? ? ?1 c ? ? ?1 b ? ? ?1 a ? ? ?1 e ? ? ?1 d ? ? ?1 a

    整理下uniq -c的結(jié)果,使得原始行在前,每行的計(jì)數(shù)在后。

    awk是一個(gè)強(qiáng)大的文本處理工具,其處理數(shù)據(jù)模式為按行處理。每次讀入一行,進(jìn)行操作。OFS: 輸出文件的列分隔符 (output file column separtor);FS為輸入文件的列分隔符 (默認(rèn)為空白字符)。awk中的列從第1到n列,分別記錄為$1, $2 … $n。BEGIN表示在文件讀取前先設(shè)置基本參數(shù);與之相對(duì)應(yīng)的是END,只文件讀取完成之后進(jìn)行操作。不以BEGIN, END開(kāi)頭的{}就是文件讀取、處理的部分。

    # 管道符還記得吧,后臺(tái)回復(fù) 管道 可查看# awk的操作就是鍍金上一步的結(jié)果,去除多余的空白,然后調(diào)換2列ct@ehbio:~$ sort test2 | uniq -c | awk ‘BEGIN{OFS=””;}{print $2, $1}’a ? ?3b ? ?2c ? ?1d ? ?1e ? ?1

    對(duì)兩列文件,安照第二列進(jìn)行排序, sort -k2,2n。

    # 第二列按數(shù)值大小排序ct@ehbio:~$ sort test2 | uniq -c | awk ‘BEGIN{OFS=””;}{print $2, $1}’ | sort -k2, 2nc ? ?1d ? ?1e ? ?1b ? ?2a ? ?3# 第二列按數(shù)值大小排序# 第二列相同的再按第一列的字母順序的逆序排序 (-r)# 注意看前3行的順序與上一步結(jié)果的差異ct@ehbio:~$ sort test2 | uniq -c | awk ‘BEGIN{OFS=””;}{print $2,$1}’ | sort -k2,2n -k1,1re ? ?1d ? ?1c ? ?1b ? ?2a ? ?3

    FASTA序列提取

    生成單行序列FASTA文件,提取特定基因的序列,最簡(jiǎn)單的是使用grep命令。

    grep在前面也提到過(guò),以后還會(huì)經(jīng)常提到,主要用途是匹配文件中的字符串,以此為基礎(chǔ),進(jìn)行一系列的操作。如果會(huì)使用正則表達(dá)式,將會(huì)非常強(qiáng)大。正則表達(dá)式版本很多,幾乎每種語(yǔ)言都有自己的規(guī)則,本文檔不會(huì)展開(kāi),用到哪個(gè)提哪個(gè)。

    # 生成單行序列FASTA文件ct@ehbio:~$ cat >SOX2> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> >POU5F1> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> >NANOG> CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT> ENDct@ehbio:~$ cat test.fasta >SOX2ACGAGGGACGCATCGGACGACTGCAGGACTGTC>POU5F1ACGAGGGACGCATCGGACGACTGCAGGACTGTC>NANOGCGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT# grep匹配含有SOX2的行# -A 1 表示輸出的行中,包含匹配行的下一行 (A: after)ct@ehbio:~$ grep -A 1 ‘SOX2’ test.fasta >SOX2ACGAGGGACGCATCGGACGACTGCAGGACTGTC# 也可以使用AWK# 先判斷當(dāng)前行是不是 > 開(kāi)頭,如果是,表示是序列名字行,替換掉大于號(hào),取出名字。# sub 替換, sub(被替換的部分,要替換成的,待替換字符串)# 如果不以大于號(hào)開(kāi)頭,則為序列行,存儲(chǔ)起來(lái)。# seq[name]: 相當(dāng)于建一個(gè)字典,name為key,序列為值。然后就可以使用name調(diào)取序列。ct@ehbio:~$ awk ‘BEGIN{OFS=FS=””}{if($0~/>/) {name=$0; sub(“>”, “”, name);} else seq[name]=$0;}END{print “>SOX2”; print seq[“SOX2”]}’ test.fasta>SOX2ACGAGGGACGCATCGGACGACTGCAGGACTGTC

    多行FASTA序列提取要麻煩些,一個(gè)辦法就是轉(zhuǎn)成單行序列,用上面的方式處理。

    sed和tr都為最常用的字符替換工具。

    ct@ehbio:~$ cat >SOX2> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> ACGAGGGACGCATCGGACGACTGCAGGAC> >POU5F1> CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT> CGGAAGGTAGTCGTCAGTGCAGCGAGTCC> >NANOG> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> ACGAGGGACGCATCGGACGACTGCAGG> ACGAGGGACGCATCGGACGACTGCAGGACTGTC> ACGAGGGACGCATCGGACGACTGCAGGACTGT> END# 給>號(hào)開(kāi)頭的行的行尾加個(gè)TAB鍵,以便隔開(kāi)名字和序列# TAB鍵不可見(jiàn),直接看看不大# ()表示記錄匹配的內(nèi)容,1則表示()中記錄的匹配的內(nèi)容# 后面我們專(zhuān)門(mén)講sedct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta >SOX2 ? ?ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC>POU5F1 ? ?CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGTCGGAAGGTAGTCGTCAGTGCAGCGAGTCC>NANOG ? ?ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGT#使用cat -A 可以顯示文件中所有的符號(hào)# ^I 表示tab鍵# $表示行尾ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | cat -A>SOX2^I$ACGAGGGACGCATCGGACGACTGCAGGACTGTC$ACGAGGGACGCATCGGACGACTGCAGGACTGTC$ACGAGGGACGCATCGGACGACTGCAGGAC$>POU5F1^I$CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT$CGGAAGGTAGTCGTCAGTGCAGCGAGTCC$>NANOG^I$ACGAGGGACGCATCGGACGACTGCAGGACTGTC$ACGAGGGACGCATCGGACGACTGCAGG$ACGAGGGACGCATCGGACGACTGCAGGACTGTC$ACGAGGGACGCATCGGACGACTGCAGGACTGT$# 把所有的換行符替換為空格# tr這個(gè)命令,前面提到過(guò),若想不起來(lái) `man tr`查看# 主意第二個(gè)參數(shù),引號(hào)內(nèi)為空格。ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | tr ” ‘ ‘>SOX2 ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGAC >POU5F1 ? ? CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT CGGAAGGTAGTCGTCAGTGCAGCGAGTCC >NANOG ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGG ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGT # 把最后一個(gè)空格替換為換行符ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | tr ” ‘ ‘ | sed -e ‘s/ $//’>SOX2 ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGAC >POU5F1 ? ? CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT CGGAAGGTAGTCGTCAGTGCAGCGAGTCC >NANOG ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGG ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGT# 把 ?‘ >’替換為換行符 注意被替換的是 空格+大于號(hào)# 當(dāng)連用多個(gè)替換命令時(shí),使用-e 隔開(kāi)ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | tr ” ‘ ‘ | sed -e ‘s/ $//’ -e ‘s/ >/>/g’>SOX2 ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGAC>POU5F1 ? ? CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT CGGAAGGTAGTCGTCAGTGCAGCGAGTCC>NANOG ? ? ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGG ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGT# 把所有的空格替換掉ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | tr ” ‘ ‘ | sed -e ‘s/ $//’ -e ‘s/ >/>/g’ -e ‘s/ //g’>SOX2 ? ?ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC>POU5F1 ? ?CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGTCGGAAGGTAGTCGTCAGTGCAGCGAGTCC>NANOG ? ?ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGT# 把TAB鍵轉(zhuǎn)換為換行符ct@ehbio:~$ sed ‘s/^(>.*)/1/’ test.fasta | tr ” ‘ ‘ | sed -e ‘s/ $//’ -e ‘s/ >/>/g’ -e ‘s/ //g’ -e ‘s///g’ >SOX2ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC>POU5F1CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGTCGGAAGGTAGTCGTCAGTGCAGCGAGTCC>NANOGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGT

    或者簡(jiǎn)單點(diǎn),直接用前面的awk略微做下修改。

    # 差別只在一點(diǎn)# 對(duì)于單行fasta文件,只需要記錄一行,seq[name]=$0# 對(duì)于多好fasta文件,需要把每一行序列都加到前面的序列上,seq[name]=seq[name]$0ct@ehbio:~$ awk ‘BEGIN{OFS=FS=””}{if($0~/>/) {name=$0; sub(“>”, “”, name);} else seq[name]=seq[name]$0;}END{print “>SOX2”; print seq[“SOX2”]}’ test.fasta>SOX2ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年6月14日 12:29
    下一篇 2022年6月14日 12:30

    相關(guān)推薦

    • cad連續(xù)標(biāo)注快捷鍵(cad連續(xù)標(biāo)注快捷鍵)

      本文主要講的是cad連續(xù)標(biāo)注快捷鍵,以及和cad連續(xù)標(biāo)注快捷鍵相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 cad中連續(xù)標(biāo)注快捷鍵 CAD尺寸標(biāo)準(zhǔn)快捷命令:DL…

      2022年11月27日
    • 寶可夢(mèng)朱紫寶主順序怎么選擇?寶可夢(mèng)朱紫寶主挑戰(zhàn)順序攻略

      寶可夢(mèng)朱紫寶主順序如何選擇?寶主挑戰(zhàn)的順序有很多玩家都加入了討論,大家想要了解清楚正確的挑戰(zhàn)順序,接下來(lái)小編就給大家簡(jiǎn)單的介紹一下寶主挑戰(zhàn)的順序,各位趕緊通過(guò)下面的攻略多了解一下詳…

      2022年11月25日
    • 淘寶直播開(kāi)通后帶貨鏈接怎么做(淘寶直播需要開(kāi)通淘寶店鋪嗎)

      直播帶貨無(wú)論是對(duì)于商家來(lái)說(shuō)還是主播收益都是非??捎^的,所以不少平臺(tái)都有直播帶貨功能,一些小伙伴也想加入淘寶直播,那么淘寶直播開(kāi)通后帶貨鏈接怎么做?下面小編為大家?guī)?lái)淘寶直播開(kāi)通后帶…

      2022年11月24日
    • 科比19歲女兒遭自稱(chēng)與她生“科比式孩子”男子跟蹤騷擾

      極目新聞?dòng)浾咄趿亮咙S佳琪 據(jù)??怂剐侣劸W(wǎng)報(bào)道,當(dāng)?shù)貢r(shí)間11月21日,已故籃球巨星科比·布萊恩特的長(zhǎng)女娜塔莉亞·布萊恩特21日向法院提交臨時(shí)限制令,聲稱(chēng)這位32歲的前科從十幾歲起就騷…

      2022年11月24日
    • 寶可夢(mèng)朱紫道館及寶主攻略順序是什么 道館及寶主攻略順序匯總

      作為寶可夢(mèng)資深?lèi)?ài)好者,小伙伴們對(duì)寶可夢(mèng)朱紫里面的所有道館恨不得馬上跳過(guò),當(dāng)場(chǎng)就來(lái)挑戰(zhàn)地區(qū)冠軍,但這顯然是不可能的,你得按照游戲里面遇到的順序來(lái)進(jìn)行挑戰(zhàn)。那么具體的挑戰(zhàn)順序是什么樣的…

      2022年11月24日
    • 免費(fèi)清理c盤(pán)的軟件(清理c盤(pán)空間不影響系統(tǒng))

      電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤(pán)空間不足造成的。 即使電腦配置再好,或者硬盤(pán)再快,如果長(zhǎng)時(shí)間沒(méi)有打掃C盤(pán),打開(kāi)文件或者穩(wěn)定之類(lèi)的,都卡得讓人頭大。 這時(shí)候呢不要去…

      2022年11月24日
    • pdf虛擬打印機(jī)(添加pdf虛擬打印機(jī))

      本文主要講的是pdf虛擬打印機(jī),以及和添加pdf虛擬打印機(jī)相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 pdf虛擬打印機(jī)具體是什么功能? 電腦虛擬打印機(jī)的功能有…

      2022年11月24日
    • 快手限流多久能解除(快手限流什么意思)

      我相信很多人都看中了快手平臺(tái)的商機(jī),都爭(zhēng)先恐后地想要搶占機(jī)會(huì),可一些人剛剛作出一點(diǎn)成績(jī),就被降權(quán)了,自己也不知道什么原因。所以今天就來(lái)聊聊快手賬號(hào)降權(quán)操作分享,趕快來(lái)看看避免違規(guī)!…

      2022年11月23日
    • Win11 22H2再出新問(wèn)題Bug:無(wú)法彈出USB設(shè)備

      作為Windows 11的首次大更新,在Win11 22H2發(fā)布后并沒(méi)有帶來(lái)預(yù)想的場(chǎng)景,各種問(wèn)題頻現(xiàn)成為了一種常態(tài)。 近日有消息稱(chēng),Win11 22H2存在一個(gè)占用沖突Bug,當(dāng)用…

      2022年11月22日
    • 美團(tuán)月付300小額取現(xiàn)?美團(tuán)月付取現(xiàn)300不見(jiàn)了

      很多上班族每天都在使用美團(tuán)點(diǎn)外賣(mài),你知道美團(tuán)現(xiàn)在推出了一款類(lèi)似花唄的產(chǎn)品嗎?可以在美團(tuán)消費(fèi)的時(shí)候先消費(fèi)后還款,叫做美團(tuán)月付,是美團(tuán)推出的一款消費(fèi)型產(chǎn)品,不能直接提現(xiàn)到銀行卡,只能用…

      2022年11月21日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息