從fasta文件中批量提取特定序列

如題愤炸,目的是從fasta文件中批量提取特定的基因序列.
實現辦法有幾種:

  1. perl腳本:
    CSDN博主「little^raccoon」的原創(chuàng)文章perl實現根據序列ID從提取fasta文件序列
    原文鏈接:https://blog.csdn.net/weixin_40099163/article/details/109635328

    usage: perl thisScript.pl query.fa gene.lst outfile

query.fa 基因組或其他需要從中提取的fasta格式文件
gene.lst 需要提取的基因或染色體名字,有無>均可
outfile 輸出文件

#!/bin/perl
#unless(@ARGV==3){
#   die "usage: $0 <input.fa> <lst> <output.fas>\n";
#}
$file=shift;
$lst=shift;
$out=shift;

open FILE,$file;
open LST,$lst;
open OUT,">".$out;

while(<FILE>){
    chomp;
    my $line=$_;
    if($line=~/^>/){
        my @line=split /[ |\t]/,$line;
        our $name=$line[0];
        #print "$name\n";
    }
    else{
        $seq_hash{$name}.=$line;
    }
}
while(<LST>){
    chomp;
    my $line=$_;
    if($line=~/^>/){
        $ID=$line;
        if(exists $seq_hash{$ID}){
            print OUT "$ID\n$seq_hash{$ID}\n";
        }
        else{
            print OUT "error1: ".$ID." no found.\n";
        }
    }
    else{
        my $ID=">".$line;
        if(exists $seq_hash{$ID}){
            print OUT "$ID\n$seq_hash{$ID}\n";
        }
        else{
            print OUT "error2: ".$ID." no found.\n";
        }
    }
}
  1. python
    采用click模塊添加命令行參數。**
    CSDN博主「冷月状答、無聲」的原創(chuàng)文章:根據ID從FASTA文件中批量提取序列【Python腳本】
    原文鏈接:https://blog.csdn.net/weixin_42358077/article/details/87985833
# -*- coding: utf-8 -*-
"""
@author: gyw
@Date:  Wed Feb 27 09:19:54 2019
@E-mail: willgyw@126.com
@Description: This program can extract sequences 
              from a fasta file, according to a 
              given id list.
"""

import click

@click.command()
@click.option('-f', '--fastafile', help='Input a fasta file', required=True)
@click.option('-i', '--idfile', help='Input an idlist', required=True)
@click.option('-o', '--outfile', help='Input the name of result file', default='result.fa')


def main(fastafile, idfile, outfile):
    """ 
    Extract seqences from a fasta file 
    according to a id list.
    """
    idfile = open(idfile, 'r')
    resultfile = open(outfile, 'w')
    for id in idfile:
        qid = id.strip()
        flag = 0 
        with open(fastafile,'r') as ffile:
            for line in ffile:
                line = line.strip()
                if line.startswith('>'):
                    name = line.replace('>','').split()[0]
                    if name == qid:
                        flag = 1
                        resultfile.write(line + '\n')
                    else:
                        flag = 0
                else:
                    if flag == 0:
                        pass
                    else:
                        resultfile.write(line + '\n')
    resultfile.close()

if __name__ == '__main__':
    main()
  1. TBtool software[1]
    這個小工具誕生之初就是為了解決最基本的序列提取等操作,隨著作者的不斷完善根悼,現在已經是一個小有名氣的多功能生信軟件彤叉,兼具繪圖等功能,各類教程可以看作者發(fā)布的使用說明棉胀。
  1. 在線云平臺
    以聯川生物的云平臺為例,https://www.omicstudio.cn/tool/77唁奢,可以參看微信公眾號推文使用說明霎挟,免費在線小工具:fasta序列提取

只要思想不滑坡,辦法總比困難多麻掸。


  1. Chen C , Chen H , Y Zhang, et al. TBtools: An Integrative Toolkit Developed for Interactive Analyses of Big Biological Data[J]. Molecular Plant, 2020, 13(8). ?

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市巫延,隨后出現的幾起案子,更是在濱河造成了極大的恐慌适瓦,老刑警劉巖疯攒,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜻直,死亡現場離奇詭異赎瑰,居然都是意外死亡鲜漩,警方通過查閱死者的電腦和手機鳞青,發(fā)現死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門霞溪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟋滴,“玉大人津函,你說我怎么就攤上這事」乱常” “怎么了尔苦?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長行施。 經常有香客問我蕉堰,道長,這世上最難降的妖魔是什么悲龟? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任屋讶,我火速辦了婚禮,結果婚禮上须教,老公的妹妹穿的比我還像新娘皿渗。我一直安慰自己,他們只是感情好轻腺,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布乐疆。 她就那樣靜靜地躺著,像睡著了一般贬养。 火紅的嫁衣襯著肌膚如雪挤土。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天误算,我揣著相機與錄音仰美,去河邊找鬼。 笑死儿礼,一個胖子當著我的面吹牛咖杂,可吹牛的內容都是我干的。 我是一名探鬼主播蚊夫,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼诉字,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起壤圃,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤陵霉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伍绳,有當地人在樹林里發(fā)現了一具尸體撩匕,經...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年墨叛,在試婚紗的時候發(fā)現自己被綠了止毕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡漠趁,死狀恐怖扁凛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情闯传,我是刑警寧澤谨朝,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站甥绿,受9級特大地震影響字币,放射性物質發(fā)生泄漏。R本人自食惡果不足惜共缕,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一洗出、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧图谷,春花似錦翩活、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至承璃,卻和暖如春利耍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盔粹。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工隘梨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玻佩。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓出嘹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咬崔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容