可以從fasta中提取基因序列的4款軟件

前言

??做生分析有時候需要從基因組fasta文件中提取基因的序列,對于這個需求有不少現(xiàn)成的軟件可以來實(shí)現(xiàn)财著,今天來跟大家分享4款可以完成這個需求的軟件联四,廢話不多說了,直接來看看是哪4個軟件:seqkit撑教、seqtk朝墩、bedtools、gffread伟姐,這四個軟件本身功能都很豐富且實(shí)用收苏,提取序列只是軟件的功能之一。前面兩款功能很類似愤兵,這個從它們的名字也可以看出來鹿霸,功能有些冗余實(shí)際實(shí)用時選擇其中一款即可。bedtools應(yīng)該很多人都用過秆乳,這個軟件主要是用來操作bed文件杜跷,可以對兩個bed進(jìn)行交集、并集等矫夷,gffread單獨(dú)拿出來有些人可能不知道葛闷,如果說cufflinks很多人可能就知道了,gffread就是cufflinks工具集中的一個子軟件双藕,它還用一個常用的功能就是gtf淑趾、gff格式互轉(zhuǎn)。那下面我們就來看看四款軟件的具體使用方法忧陪。

  1. seqkit
    首先來看一下seqkit使用方法扣泊,該軟件的功能很多(可使用seqkit -h來查看全部可用命令),提取序列使用的是subseq子命令嘶摊,該命令可以根據(jù)bed延蟹、gtf、region位置信息從fasta文件中提取基因序列叶堆,并且可以擴(kuò)展兩側(cè)的序列阱飘,具體代碼如下:
Usage:
  seqkit subseq [flags]

Flags:
      --bed string        by tab-delimited BED file
      --chr strings       select limited sequence with sequence IDs when using --gtf or --bed (multiple value supported, case ignored)
  -d, --down-stream int   down stream length
      --feature strings   select limited feature types (multiple value supported, case ignored, only works with GTF)
      --gtf string        by GTF (version 2.2) file
      --gtf-tag string    output this tag as sequence comment (default "gene_id")
  -h, --help              help for subseq
  -f, --only-flank        only return up/down stream sequence
  -r, --region string     by region. e.g 1:12 for first 12 bases, -12:-1 for last 12 bases, 13:-1 for cutting first 12 bases. type "seqkit subseq -h" for more examples
  -u, --up-stream int     up stream length

Global Flags:
      --alphabet-guess-seq-length int   length of sequence prefix of the first FASTA record based on which seqkit guesses the sequence type (0 for whole seq) (default 10000)
      --id-ncbi                         FASTA head is NCBI-style, e.g. >gi|110645304|ref|NC_002516.2| Pseud...
      --id-regexp string                regular expression for parsing ID (default "^(\\S+)\\s?")
      --infile-list string              file of input files list (one file per line), if given, they are appended to files from cli arguments
  -w, --line-width int                  line width when outputing FASTA format (0 for no wrap) (default 60)
  -o, --out-file string                 out file ("-" for stdout, suffix .gz for gzipped out) (default "-")
      --quiet                           be quiet and do not show extra information
  -t, --seq-type string                 sequence type (dna|rna|protein|unlimit|auto) (for auto, it automatically detect by the first sequence) (default "auto")
  -j, --threads int                     number of CPUs. (default value: 1 for single-CPU PC, 2 for others) (default 2)
 
#提取序列
seqkit subseq --bed gencode_lncrna.bed -o test.fa GRCh38.primary_assembly.genome.fa

可以看來seqkit提取序列還是很方便的,而且可以分別指定上下游延申多少bp的側(cè)翼序列,或者只提取上下游序列也是可以的沥匈,還可以指定輸出文件的寬度蔗喂,更多細(xì)節(jié)功能這里就不多說了。

  1. seqtk
    下面來看一下seqtk的功能高帖,這個軟件根據(jù)bed文件來從fasta中提取序列缰儿,從下面的代碼可以看出這個軟件的子命令參數(shù)很少,通過重定向的方式輸出到新的文件里散址,用起來很簡單乖阵。
Usage:   seqtk subseq [options] <in.fa> <in.bed>|<name.list>
Options: -t       TAB delimited output
         -l INT   sequence line length [0]
#提取序列
seqtk subseq GRCh38.primary_assembly.genome.fa gencode_lncrna.bed >test.fa

  1. bedtools
    bedtools功能很多,非常出名的功能是用來對bed文件取交集等一系列操作预麸,那些功能這里就不多說了瞪浸,感興趣的可以自己去測試∈ζ椋可以看出該軟件可以根據(jù)bed默终、gff、vcf位置來從fasta中提取序列犁罩,下面來演示一下該軟件如何提取序列齐蔽。
Usage:   bedtools getfasta [OPTIONS] -fi <fasta> -bed <bed/gff/vcf> -fo <fasta>
Options:
        -fi     Input FASTA file
        -bed    BED/GFF/VCF file of ranges to extract from -fi
        -fo     Output file (can be FASTA or TAB-delimited)
        -name   Use the name field for the FASTA header
        -split  given BED12 fmt., extract and concatenate the sequencesfrom the BED "blocks" (e.g., exons)
        -tab    Write output in TAB delimited format.
                - Default is FASTA format.

        -s      Force strandedness. If the feature occupies the antisense,
                strand, the sequence will be reverse complemented.
                - By default, strand information is ignored.

        -fullHeader     Use full fasta header.
                - By default, only the word before the first space or tab is used.
#提取序列
bedtools getfasta -fi GRCh38.primary_assembly.genome.fa -bed gencode_lncrna.bed -name -fo test.fa

該軟件提取序列時,可以根據(jù)基因鏈的信息來提取序列床估,這個功能有時候很實(shí)用含滴。同時這個軟件的速度也是非常的塊。

  1. gffread
    gffread是cufflinks軟件集中的一個子軟件丐巫,該軟件另一個常用的功能是gtf谈况、gff格式互轉(zhuǎn),感興趣的可以自己測試递胧。這個軟件的參數(shù)非常多碑韵,這里就不展示了。這款軟件可以根據(jù)gff缎脾、gtf位置信息來從fasta中提取序列祝闻,值得一提的是該軟件在提取序列時,可以選擇輸出的格式遗菠,如提取外顯子區(qū)的序列联喘、CDS序列、翻譯成蛋白序列辙纬,功能很是貼心豁遭。下面來展示一下如何提取。
#提取序列
gffread -g GRCh38.primary_assembly.genome.fa -w test.fa  gencode.v34.primary_assembly.annotation.gtf

介紹了幾個可以根據(jù)bed文件來提取序列的軟件贺拣,那有些人可能還想知道如何得到bed文件呢蓖谢?可以根據(jù)gtf文件來生成捂蕴,下面給大家介紹一款用來根據(jù)gtf生成bed文件的軟件——bedops。這里提醒一下蜈抓,該軟件有很多種安裝方式启绰,但推薦大家使用conda安裝省事省心昂儒,其他方式基本都需要sudo權(quán)限沟使。下面來看一下這款軟件使用方法。

#安裝軟件
conda install -c conda-forge -c bioconda bedops
#gtf to bed
gtf2bed < gencode.v34.primary_assembly.annotation.gtf >test.bed

用conda安裝好bedops后渊跋,激活一下環(huán)境就可以使用了腊嗡,轉(zhuǎn)換格式用的是gtf2bed子軟件,值得注意的是該軟件的輸入輸出文件都用重定向的方式拾酝,還有一個需要注意的點(diǎn)提醒一下大家燕少,如果你的gtf文件中沒有transcript ID這個屬性會報錯,會出現(xiàn)這樣的錯誤提示“Error: Potentially missing gene or transcript ID from GTF attributes (malformed GTF at line [1]?)” 蒿囤。此時客们,可通過下面的命令來解決問題:

#gtf文件沒有transcript ID屬性可以使用該命令
awk '{ if ($0 ~ "transcript_id") print $0; else print $0" transcript_id \"\";"; }' input.gtf | gtf2bed - > output.bed

最后

??今天給大家介紹了四款可以用來從fasta提取序列的軟件,外加一個可以將gtf轉(zhuǎn)bed文件的軟件材诽,有了這幾款軟件底挫,基本上提取序列就是很容易的事。這些軟件其他的功能也是很不錯脸侥,大家可以自己去探索吧建邓!emm,今天就分享到這里了睁枕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末官边,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子外遇,更是在濱河造成了極大的恐慌注簿,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跳仿,死亡現(xiàn)場離奇詭異诡渴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)塔嬉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門玩徊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谨究,你說我怎么就攤上這事恩袱。” “怎么了胶哲?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵畔塔,是天一觀的道長。 經(jīng)常有香客問我,道長澈吨,這世上最難降的妖魔是什么把敢? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮谅辣,結(jié)果婚禮上修赞,老公的妹妹穿的比我還像新娘。我一直安慰自己桑阶,他們只是感情好柏副,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚣录,像睡著了一般割择。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萎河,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天荔泳,我揣著相機(jī)與錄音,去河邊找鬼虐杯。 笑死玛歌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厦幅。 我是一名探鬼主播沾鳄,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼确憨!你這毒婦竟也來了译荞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤休弃,失蹤者是張志新(化名)和其女友劉穎吞歼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塔猾,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篙骡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丈甸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糯俗。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖睦擂,靈堂內(nèi)的尸體忽然破棺而出得湘,到底是詐尸還是另有隱情,我是刑警寧澤顿仇,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布淘正,位于F島的核電站摆马,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸿吆。R本人自食惡果不足惜囤采,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惩淳。 院中可真熱鬧蕉毯,春花似錦、人聲如沸黎泣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抒倚。三九已至,卻和暖如春坷澡,著一層夾襖步出監(jiān)牢的瞬間托呕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工频敛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留项郊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓斟赚,卻偏偏與公主長得像着降,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拗军,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345