Lecture 11-20

本地blast使用

  1. 下載及安裝:
curl -O ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.6.0+-x64-linux.tar.gz
tar zxvf ncbi-blast-2.6.0+-x64-linux.tar.gz

#添加路徑
echo 'export PATH=$PATH:~/src/ncbi-blast-2.6.0+/bin' >> ~/.bashrc
source ~/.bashrc
  1. 使用:
    blast與大多數(shù)序列比對軟件一樣疹味,需要對參考序列創(chuàng)建一個哈希結構的數(shù)據(jù)庫:
#參數(shù):
# -dbtype <String, `nucl', `prot'>
#   Molecule type of target db
# -in <File_In>
#   Input file/database name
#   Default = `-'
makeblastdb -in ~/refs/KM233118.fa -dbtype nucl

序列比對

# 我們可以修改輸出格式营袜。 當堿基對堿基的比對信息不需要時沙廉,我們可以采用表格格式。
blastn -db refs/KM233118.fa -query query.fa -outfmt 6
# 你也可以自己定義輸出格式屡穗。
blastn -db refs/KM233118.fa -query query.fa -outfmt '6 qseqid sseqid qlen length mismatch'

# blast有不同的搜索策略或task撤防。
#*task里的參數(shù)有'blastn'叙谨,'blastn-short' 许溅,'dc-megablast'瓤鼻,'megablast', 'rmblastn'贤重,默認的是'megablast'
#*使用不同的task茬祷,出來的結果內(nèi)會有文獻引用,有興趣的朋友可以去看一下并蝗。
#*blastn:需要11bp以上的精確匹配祭犯。
#*blast-short:對于小于50bp的序列最優(yōu)。
#*megablast:一般用于非常相似的序列滚停。
#*dc-megablast:dc(discontiguous沃粗,不連續(xù)的),一般用于找距離遠(相似性低的铐刘,比如種間同源)的序列陪每。

blast可以對多條序列進行比對

# 你在目標數(shù)據(jù)庫中影晓,可以有多條序列镰吵。
esearch -db nucleotide -query PRJNA257197 | efetch -db nucleotide -format fasta > refs/all-genomes.fa

# 對所有的基因組創(chuàng)建blast數(shù)據(jù)庫。
makeblastdb -in refs/all-genomes.fa -dbtype nucl

# 隨意挑取基因組的任意區(qū)域挂签。
efetch -db nucleotide -id KM233118 -format fasta -seq_start 1 -seq_stop 1000 > 1000.fa

#*大家可以試一下
#*blastn -db refs/all-genomes.fa -query 1000.fa -outfmt 6

blastdbcmd, blastp, blastx, tblastn 的用法

# blastdbcmd 有很多參數(shù)疤祭,可以對Blast數(shù)據(jù)庫內(nèi)容進行查詢和格式設定。
# 列出數(shù)據(jù)庫的所有內(nèi)容饵婆。
blastdbcmd -db refs/NC_002549.fa -entry 'all' | head -3

# 獲取數(shù)據(jù)庫的特定條目勺馆。
blastdbcmd -db refs/NC_002549.fa -entry '10313991' | head -3
#*報錯,暫未解決侨核。

# 獲取數(shù)據(jù)庫中的一定范圍的核苷酸條目草穆。
blastdbcmd -db refs/NC_002549.fa -entry 'all' -outfmt '%a %s' -range 1-10 -strand minus
#*%a表示accession(訪問號),%s 表示 sequence data(序列數(shù)據(jù))

# 設定數(shù)據(jù)庫內(nèi)容的格式搓译。
blastdbcmd -db refs/NC_002549.fa -entry 'all' -outfmt '%a %l'
#*%l 表示 sequence length(序列長度)

# 列出每個蛋白及其長度悲柱。
blastdbcmd -db refs/NC_002549-prot.fa -entry 'all' -outfmt '%a %l'

# 從蛋白數(shù)據(jù)庫中提取一個條目并存到一個文件中。
blastdbcmd -db refs/NC_002549-prot.fa -entry 'NP_066243.1' > query-p.fa

blastp是蛋白序列比對蛋白數(shù)據(jù)庫些己,與blastn用法類似豌鸡,也是需要先進行數(shù)據(jù)庫的構建,再進行比對:

blastp -db refs/NC_002549-prot.fa -query query-p.fa

tblastn是將蛋白序列比對到核苷酸數(shù)據(jù)庫段标。

efetch -db protein -id NP_066243.1 -format fasta > NP_066243.fa
tblastn -db refs/NC_002549.fa -query NP_066243.fa  | more

blastx是核苷酸序列比對到蛋白數(shù)據(jù)庫

blastx -db refs/NC_002549-prot.fa -query nucleotide.fa | more

BWA(Burrows-Wheeler Aligner)

BWA主要是將reads比對到大型基因組上涯冠,主要功能是:序列比對。首先通過BWT(Burrows-Wheeler Transformation逼庞,BWT壓縮算法)為大型參考基因組建立索引蛇更,然后將reads比對到基因組。特點是快速、準確派任、省內(nèi)存共耍。由三種類似算法組成:BWA-backtrack,BWA-SW和BWA-MEM吨瞎。首推BWA-MEM痹兜。

三種算法的適用范圍
  • BWA-backtrack:reads長度<70bp時,推薦本算法颤诀,建議輸入reads長度 < 100bp字旭。
  • BWA-SW:在reads具有頻繁的gap時,比對更敏感崖叫,推薦本算法遗淳。reads長度一般為70bp-1Mbp,支持long-reads心傀,split alignment屈暗。
  • BWA-MEM(首推):在reads長度在70bp-1Mbp范圍時,推薦本算法(除了上面兩種情況)脂男。支持long-reads养叛,split alignment。
  1. 安裝及下載
cd ~/src
curl -OL http://downloads.sourceforge.net/project/bio-bwa/bwa-0.7.15.tar.bz2
tar jxvf bwa.0.7.15.tar.bz2 #bzip2壓縮宰翅,需要加-j 解壓
cd bwa-0.7.15/
make

#建立軟鏈接
ln -s ~/src/bwa-0.7.15/bwa ~/bin
  1. 使用
# 對基因組創(chuàng)建索引弃甥,這樣bwa就可以進行基因組搜索。
bwa index ~/refs/852/ebola-1999.fa

# 獲取埃博拉基因組序列的第一行汁讼。
head -2 ~/refs/852/ebola-1999.fa > query.fa

# 用bwa-mem命令將其map回它的基因組淆攻。
bwa mem ~/refs/852/ebola-1999.fa query.fa > results.sam

SAM文件格式

主要細節(jié)參照該網(wǎng)址:https://www.cnblogs.com/zdwu/p/6801063.html

# 有兩種輸出流。它們被稱為:標準輸出(standard out)和標準錯誤輸出(standard error)嘿架。
# 下邊的代碼是告訴你瓶珊,你可以如何重定向這兩個輸出到文件中。
bwa mem ~/refs/852/ebola-1999.fa query.fa 1> results.sam 2> errors.txt

BAM文件和samtools

# 安裝一個短read模擬器耸彪。Heng Li寫的wgsim伞芹。
cd ~/src
git clone https://github.com/lh3/wgsim.git
cd wgsim
gcc -g -O2 -Wall -o wgsim wgsim.c -lz -lm
ln -s ~/src/wgsim/wgsim ~/bin/wgsim
  1. 下載和安裝samtools。
cd ~/src
curl -OL http://sourceforge.net/projects/samtools/files/samtools/1.1/samtools-1.1.tar.bz2
tar jxvf samtools-1.1.tar.bz2
cd samtools-1.1
make
ln -s ~/src/samtools-1.1/samtools ~/bin/
  1. 使用
# 生成一些數(shù)據(jù)搜囱,并把輸出保存到一個文件丑瞧。
wgsim -N 10000 ~/refs/852/ebola-1999.fa read1.fq read2.fq > mutations.txt

# 運行比對。
bwa mem ~/refs/852/ebola-1999.fa read1.fq read2.fq > results.sam

# 開始轉(zhuǎn)換成BAM文件蜀肘。
samtools view -Sb results.sam > temp.bam

# 對比對結果進行排序绊汹。
samtools sort -f temp.bam results.bam

# 使用samtools過濾。
# -f 匹配標識(flag)(保留匹配的標識對應的reads)
# -F 過濾標識(flag)(去除匹配標識對應的reads扮宠,保留剩余的)
#*在上兩個lecture中有說過sam格式西乖,sam每一列有不同含義狐榔,其中一列(第二列)叫標識(flag),不同數(shù)字有不同含義

FLAG, 概括出一個合適的標記获雕,各個數(shù)字分別代表
1 序列是一對序列中的一個
2 比對結果是一個pair-end比對的末端
4 沒有找到位點
8 這個序列是pair中的一個但是沒有找到位點
16 在這個比對上的位點薄腻,序列與參考序列反向互補
32 這個序列在pair-end中的的mate序列與參考序列反響互補
64 序列是 mate 1
128 序列是 mate 2
假如說標記為以上列舉出的數(shù)目,就可以直接推斷出匹配的情況届案。假如說標記不是以上列舉出的數(shù)字庵楷,比如說83=(64+16+2+1),就是這幾種情況值和楣颠。

# 比對到反向互補鏈的reads尽纽。
samtools view -f 16 results.bam

# 比對到正向鏈的reads。
samtools view -F 16 results.bam

# -c 可以用來計數(shù)
samtools view -F 16 results.bam | wc -l
samtools view -c -F 16 results.bam

# 用質(zhì)量來過濾童漩。BWA 的mapping質(zhì)量為0時弄贿,表示reads是map到多個位置。而 q>=1表示該reads是單一mapping矫膨。
samtools view -c -q 1 results.bam

# 統(tǒng)計高質(zhì)量的比對數(shù)目差凹。
samtools view -c -q 40 results.bam

ReadSeq:格式轉(zhuǎn)換軟件

  1. 下載與安裝
cd ~/src/readseq
curl -OL http://iubio.bio.indiana.edu/soft/molbio/readseq/java/readseq.jar
  1. 使用
# 提取數(shù)據(jù)未GFF(Generic Feature Format)格式。
# 自動獲取輸入文件的格式侧馅。
readseq -format=GFF NC.gb

# 你也可以設置輸出文件的名字危尿。
readseq -format=GFF -o NC-all.gff NC.gb

# 提取為fasta文件。
readseq -format=FASTA -o NC.fa NC.gb

# 從GFF文件中提取“gene”的行
#* \t表示的是tab分隔符
cat NC-all.gff | egrep '\tgene\t'

# 同時施禾,前兩行也是我們要的脚线。
echo '##gff-version 2' > NC-genes.gff
cat NC-all.gff | egrep '\tgene\t' >> NC-genes.gff
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弥搞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渠旁,老刑警劉巖攀例,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顾腊,居然都是意外死亡粤铭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門杂靶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梆惯,“玉大人,你說我怎么就攤上這事吗垮《饴穑” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵烁登,是天一觀的道長怯屉。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么锨络? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任赌躺,我火速辦了婚禮,結果婚禮上羡儿,老公的妹妹穿的比我還像新娘礼患。我一直安慰自己,他們只是感情好掠归,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布讶泰。 她就那樣靜靜地躺著,像睡著了一般拂到。 火紅的嫁衣襯著肌膚如雪痪署。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天兄旬,我揣著相機與錄音狼犯,去河邊找鬼。 笑死领铐,一個胖子當著我的面吹牛悯森,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绪撵,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼瓢姻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了音诈?” 一聲冷哼從身側(cè)響起幻碱,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎细溅,沒想到半個月后褥傍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡喇聊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年恍风,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片誓篱。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡朋贬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窜骄,到底是詐尸還是另有隱情锦募,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布啊研,位于F島的核電站御滩,受9級特大地震影響鸥拧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜削解,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一富弦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧氛驮,春花似錦腕柜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蓖扑,卻和暖如春唉铜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背律杠。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工潭流, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柜去。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓灰嫉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嗓奢。 傳聞我的和親對象是個殘疾皇子讼撒,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容