RNAseq-踩坑02 -- Aligment 比對率低

RNAseq的第二步就是Aligment, 一般都是有參考基因組的比對竖配,據(jù)同事介紹通今,比對這一步,比對率再80%以上才算是正常的娇妓,很多樣本的比對結(jié)果都能達到90%以上像鸡。

然而,然而哈恰,然而只估,對于第一次跑流程的我,第一個項目着绷,居然不到50% ;赘啤!蓬戚!

QC 統(tǒng)計蘸炸, 均在90%以上堰怨,說明測序數(shù)據(jù)質(zhì)量尚可


QC

遇到問題:Aligment 統(tǒng)計瞬内,比對率 在 28%-47%之間麻裳。


Aligment

解決思路:找到比對不上的序列幕垦,進行blast 比對循诉,查看比對上的是什么渡嚣。

具體排查:

  1. Aligment 下會有 比對上的fq ID; (A)
    QC 中有 所有fq ID (B)
    QC 中不含Aligment_fq_ID 的剩下所有ID 為 比對不上的ID (B-A)

  2. 根據(jù)相應(yīng)軟件(blast)洁仗,查看這些比對不上的ID 到底是什么原因?qū)е碌摹?/p>

簡單介紹用到的軟件

1. samtools

如今序列比對已成為各種生物學(xué)分析中不可缺少的重要環(huán)節(jié)讲衫,通過將未知的基因片段與已知具體信息的基因或基因組進行比較缕棵,并分析其中的相同部分與差異部分孵班,就可以得到該基因片段SNP位點、所屬物種以及可能具有的生物學(xué)功能等重要信息招驴。sam與bam是兩種最常用的比對結(jié)果輸出文件格式篙程,(如轉(zhuǎn)錄組STAR分析軟件輸出的比對結(jié)果為.bam文件等)
bam文件格式是sam文件的二進制格式,占用的存儲空間更小别厘,更利于節(jié)省存儲資源虱饿,而且bam文件的計算處理也更快,但二進制無法直接查看触趴,這就需要借助于工具查看了氮发。

  • Samtools 軟件就是用于處理sam與bam格式的工具軟件,能夠?qū)崿F(xiàn)二進制查看冗懦、格式轉(zhuǎn)換爽冕、排序及合并等功能,結(jié)合sam格式中的flag披蕉、tag等信息颈畸,還可以完成比對結(jié)果的統(tǒng)計匯總。同時利用linux中的grep嚣艇、awk等操作命令承冰,還可以大大擴展samtools的使用范圍與功能

基本命令
samtools view [options] <輸入bam文件>

  • 主要參數(shù):
    -b:以bam格式輸出
    -u:以未壓縮的bam格式輸出,一般與linux命令配合使用
    -h:在sam輸出中包含header信息
    -H:只輸出header信息
    -f [INT]:只輸出在比對flag中包含該整數(shù)的序列信息
    -F [INT]:跳過比對flag中含有該整數(shù)的序列
    -o [file]:標準輸出結(jié)果文件

bam/sam文件 每一列的內(nèi)容

    1. read名稱食零,通常包括測序平臺等信息
    1. SAM標記(Flag)困乒,沒有mapping的標記為“ * ”
    1. chromosome
    1. 比對上的位置,注意是從1開始計數(shù)贰谣。
    1. MAPQ(mapping quality娜搂,描述比對的質(zhì)量,數(shù)字越大吱抚,特異性越高百宇,說明該read比對到參考基因組上的位置越唯一)
    1. CIGAR字串,記錄插入秘豹,刪除携御,錯配以及splice junctions(后剪切拼接的接頭)
    1. mate名稱,記錄mate pair信息
    1. mate的位置
    1. 模板的長度
    1. read序列
    1. read質(zhì)量
    1. 程序用標記

fastq文件格式
FASTQ文件中每個序列通常有四行:

  • 序列標識以及相關(guān)的描述信息既绕,以‘@’開頭啄刹;
  • 第二行是序列
  • 第三行以‘+’開頭,后面是序列標示符凄贩、描述信息誓军,或者什么也不加
  • 第四行,是質(zhì)量信息疲扎,和第二行的序列相對應(yīng)昵时,每一個序列都有一個質(zhì)量評分捷雕,根據(jù)評分體系的不同,每個字符的含義表示的數(shù)字也不相同壹甥。

fasta文件格式
在生物信息學(xué)中救巷,F(xiàn)ASTA格式是一種基于文本的、用于表示核苷酸序列或氨基酸序列的格式盹廷。
FASTA文件以 序列表示 和 序列 作為一個基本單元征绸,各行記錄信息如下:

  • 第一行是由大于號">"開頭的任意文字說明。用于序列標記俄占,為了保證后續(xù)分析軟件能夠區(qū)分每條序列管怠,單個序列的標識必須具有唯一性;

  • 第二行開始為序列本身缸榄。只允許使用既定的核苷酸或氨基酸編碼符號渤弛。通常核苷酸符號大小寫均可,而氨基酸常用大寫字母甚带。使用時應(yīng)注意有些程序?qū)Υ笮懹忻鞔_要求她肯。文件每行的字母一般不應(yīng)超過80個字符。


    fasta
  • 將FASTA序列與質(zhì)量數(shù)據(jù)放到一起鹰贵,就變成了FASTQ

  • 去掉FASTQ文件的后兩行=FASTA

2. blast
  • blastn: 核酸序列比對
  • blastp: 蛋白質(zhì)序列比對
  • blastx: 核酸翻譯成蛋白質(zhì)序列晴氨,再與蛋白質(zhì)序列庫比對
  • tblastn:核酸序列庫翻譯成蛋白質(zhì)序列庫,再與蛋白質(zhì)序列比對
  • tblastx:核酸與核酸序列庫都翻譯為蛋白質(zhì)序列碉输,再在蛋白質(zhì)水平上比對
  • makeblastdb:建立自定義的比對序列庫

使用方法
安裝路徑\bin\blastn -query 比對序列文件名.fasta -db database -out 比對結(jié)果文件名 -evalue le-5 -outfmt 0(或其他比對結(jié)果參數(shù))

  • 可以看到籽前,blastn 要求的是fasta格式的數(shù)據(jù)。

實現(xiàn)具體步驟 (eg. pLVX-ShRNA-1)

  1. 提取Aligment之后(bam文件)匹配上的fq ID
    先讀取Align.sorted.bam 文件,提取bam第一列(f1)fq ID列敷钾,并保存到Paired_ID_list.txt文件里
  • samtool view + bam文件
    $ samtools view Alignment/pLVX-ShRNA-1/Align.sorted.bam | cut -f1 >pLVX-ShRNA-1_unpaired_blast/Paired_ID_list.txt
    Paired_ID_list
>>> import pandas as pd
>>> import numpy as np
>>> id_list = pd.read_table("Paired_ID_list.txt",sep = "\t",header=None)
>>> id_list.head()
                                         0
0   A00202:784:HKJKKDSXY:3:1138:3369:12305
1  A00202:784:HKJKKDSXY:3:1123:15953:30968
2   A00202:784:HKJKKDSXY:3:2241:6894:18818
3   A00202:784:HKJKKDSXY:3:1138:3369:12305
4   A00202:784:HKJKKDSXY:3:2241:6894:18818
>>> unilist = np.unique(id_list.values)
>>> print("matchID unique number = ", len(unilist))
matchID unique number =  11704064
  1. 提取QC之后的所有的fq ID


    trim.out

    before QC

    after QC
$ less ./QC/pLVX-ShRNA-1/pLVX-ShRNA-1_val_1.fq.gz
$ less ./QC/pLVX-ShRNA-1/pLVX-ShRNA-1_val_2.fq.gz

為了測試枝哄,這里只提取前1000條fastq數(shù)據(jù),

$ zcat QC/pLVX-ShRNA-1/pLVX-ShRNA-1_val_1.fq.gz | head -n 1000 > pLVX-ShRNA-1_unpaired_blast/pLVX-ShRNA-1_val_1_tmp
$ zcat QC/pLVX-ShRNA-1/pLVX-ShRNA-1_val_2.fq.gz | head -n 1000 > pLVX-ShRNA-1_unpaired_blast/pLVX-ShRNA-1_val_2_tmp

檢查一下行數(shù)

$ wc -l pLVX-ShRNA-1_val_1_tmp 
1000 pLVX-ShRNA-1_val_1_tmp

下面就是進行ID匹配了阻荒。


image.png

pLVX-ShRNA-1_val_1_tmp中仍舊是fastq的標準4行的格式挠锥,我們需要提取其中的seqID,然后檢查該seqID是否在上面的Paired_ID_list.txt當中侨赡,我們需要提取不在的部分fastq序列進行分析蓖租。

  • 提取fastq的seqID
    方法1:根據(jù)fastq標準格式的規(guī)律,提取seqID
fastqidlst = []
with open("pLVX-ShRNA-1_val_1_tmp",'r') as fastq:
    for line in fastq:
        if line.startswith('@'):
            fastqid = line.strip().split()[0][1:]
            fastqidlst.append(fastqid)

方法2:借助于 python Bio::SeqIO

from Bio import SeqIO
fastqidlst = []
for record in SeqIO.parse("pLVX-ShRNA-1_val_1_tmp",format="fastq"):
        fastqidlst.append(record.id)

但是羊壹,我們需要的是unpaired seqID對應(yīng)的fastq序列蓖宦。

seqIO可以一步到位,篩選seqID, 并保存seqID對應(yīng)的fastq文件

## 根據(jù) id 來獲炔耙础(過濾)fastq
fq1 = open("pLVX-ShRNA-1_val_1_tmp", "r")
fq2 = open("pLVX-ShRNA-1_val_2_tmp", "r")
OUT1=open("pLVX-ShRNA-1_val_1_tmp_unpaired1","w")
OUT2=open("pLVX-ShRNA-1_val_2_tmp_unpaired2","w")

for record in SeqIO.parse(fq1,format="fastq"):
    if record.id not in unilist:
        OUT1.write(record.format('fastq'))

for record in SeqIO.parse(fq2,format="fastq"):
    if record.id not in unilist:
        OUT2.write(record.format('fastq'))

查看fastq文件
less -S pLVX-ShRNA-1_val_2_tmp_unpaired2
pLVX-ShRNA-1_val_2_tmp有 1000條數(shù)據(jù)球昨,居然有496條沒匹配上尔店。

wc -l pLVX-ShRNA-1_val_2_tmp_unpaired2 
496 pLVX-ShRNA-1_val_2_tmp_unpaired2
  1. 利用blastn比對unpaired fastq
    blastn輸入的是fasta格式眨攘,首先需要將fastq轉(zhuǎn)成fasta
    awk '{if(NR%4 == 1){print ">" substr($0, 2)}}{if(NR%4 == 2){print}}' pLVX-ShRNA-1_val_2_tmp_unpaired2 > pLVX-ShRNA-1_val_2_tmp_unpaired2.fasta
    檢查一下主慰,看是不是fasta格式的文件
$ less -S pLVX-ShRNA-1_val_2_tmp_unpaired2.fasta
>A00202:784:HKJKKDSXY:3:1101:5412:1000 2:N:0:GACTAGTA+TCTTTCCC
TGTCGCTCCATCAAGCTTTCGCTCATTGTGGAAAATTCCTTACTGCTGCCTCCCGTAGGAGTCTGGGCCGTATCTCAGTCCCAGTGTGGCCGTACAGCCTCTCGGCCCGGCTAAACATCATCGTCTTGGTAGGCCATTACCCTAC

blastn進行核酸序列比對

/home/Software/ncbi-blast-2.11.0+/bin/blastn -task blastn -query pLVX-ShRNA-1_val_2_tmp_unpaired2.fasta \
-db /home/database/nt_blast/nt -show_gis -evalue 1e-3 -max_target_seqs 5 -num_threads 6 -out unpaired2_blast.nt.aln \
-outfmt "6 qseqid qlen sseqid slen qstart qend sstart send length pident nident bitscore evalue staxids stitle"
bastnresult

發(fā)現(xiàn)都是支原體污染,問了一下養(yǎng)過細胞的小伙伴鲫售,說是細胞被支原體污染是件很常見的事情啊啊啊啊啊啊啊啊啊啊啊啊啊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載共螺,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末情竹,一起剝皮案震驚了整個濱河市藐不,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秦效,老刑警劉巖雏蛮,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阱州,居然都是意外死亡挑秉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門苔货,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犀概,“玉大人,你說我怎么就攤上這事夜惭∫鲈睿” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵诈茧,是天一觀的道長产喉。 經(jīng)常有香客問我,道長若皱,這世上最難降的妖魔是什么镊叁? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮走触,結(jié)果婚禮上晦譬,老公的妹妹穿的比我還像新娘。我一直安慰自己互广,他們只是感情好敛腌,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惫皱,像睡著了一般像樊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旅敷,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天生棍,我揣著相機與錄音,去河邊找鬼媳谁。 笑死涂滴,一個胖子當著我的面吹牛友酱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柔纵,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼缔杉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搁料?” 一聲冷哼從身側(cè)響起或详,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎郭计,沒想到半個月后霸琴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡昭伸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年沈贝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勋乾。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡宋下,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辑莫,到底是詐尸還是另有隱情学歧,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布各吨,位于F島的核電站枝笨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏揭蜒。R本人自食惡果不足惜横浑,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屉更。 院中可真熱鬧徙融,春花似錦、人聲如沸瑰谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萨脑。三九已至隐轩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渤早,已是汗流浹背职车。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悴灵。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓军援,卻偏偏與公主長得像,于是被迫代替她去往敵國和親称勋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

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