轉錄組那些事兒 Part II

劉小澤寫于18.8.21
爭取用三部分整理完
Part I是前情提要齐苛,學習一些背景知識炼团;
Part II是實戰(zhàn),從文章拿到數(shù)據(jù)開始承二,只要是服務器能完成的工作都完成;
Part III 將是R處理部分纲爸,也是最核心的部分亥鸠,我會先學習Bioconductor,抓緊時間吧

. 閱讀文獻

文章梗概

運動神經(jīng)元存活蛋白(Survival Motor Neuron, SMN)是人體內(nèi)的泛表達蛋白识啦,它的會導致脊髓性肌萎速癥(Spinal muscular atrophy, SMA)负蚊,SMA是由SMN1基因突變引起的,但是這個基因是廣泛表達的基因颓哮,為什么運動神經(jīng)元(Motor Neurons, MNs)偏偏是最易受影響的細胞類型之一家妆?實驗通過對照組和SMA患者誘導多能干細胞(IPSC)從而產(chǎn)生純化的運動神經(jīng)元,通過固定冕茅、抗體標記伤极,然后進行了RNA測序研究。在患者運動神經(jīng)元中發(fā)現(xiàn)了SMA特異性的變化姨伤,其中包括內(nèi)質網(wǎng)(ER)應激通路的過度激活哨坪。功能研究表明,抑制內(nèi)質網(wǎng)的應激反應能提高運動神經(jīng)元的存活率乍楚。在患病小鼠中当编,使用ER應激抑制劑穿過血腦屏障可以保護脊髓運動神經(jīng)元。因此徒溪,選擇性激活內(nèi)質網(wǎng)應激反應忿偷,導致了SMA患病個體的運動神經(jīng)元死亡

實驗流程
GEO數(shù)據(jù)

開始實戰(zhàn)

萬事之源臊泌,軟件為先

#配置conda
conda create -n rna-seq python=2 samtools fastp sra-tools hisat2 rseqc -y
conda install -c bcbio htseq -y
conda install numpy pysam -y
CONBIN=/home/biosoft/miniconda3/envs/rna-seq/bin

配置好工作路徑

RNA=/home/project/rna-seq
mkdir -p $RNA/{raw_data,clean_data,ref/{genome,gtf,index},align,stats,matrix}
RAW=$RNA/raw_data
CLEAN=$RNA/clean-data
GENOME=$RNA/ref/genome
GTF=$RNA/ref/gtf
INDEX=$RNA/ref/index
ALIGN=$RNA/aign
MATRIX=$RNA/matrix
STATS=$RNA/stats

下載測試數(shù)據(jù)

GEO數(shù)據(jù)庫中的編號是:GSE69175

關于數(shù)據(jù):

NGS測序數(shù)據(jù)一般會上傳到SRA數(shù)據(jù)庫里面鲤桥,但是怎么從GEO數(shù)據(jù)庫中找到SRA原始數(shù)據(jù)的下載地址?【GEO數(shù)據(jù)庫地址:https://www.ncbi.nlm.nih.gov/geo/

GEO數(shù)據(jù)庫下載

具體的層級關系是:SRP(項目)—>SRS(樣本)—>SRX(數(shù)據(jù)產(chǎn)生)—>SRR(數(shù)據(jù)本身)

SRR數(shù)據(jù)庫地址:https://ftp-private.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/SRR/

##################################################################
################# Part 1: Data download #########################
##################################################################
# SRR2038215-SRR2038216: 對照
# SRR2038217-SRR2038218: SMN
cd $RAW
for i in `seq 15 18`;do 
ascp -v -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \
-k 1 -T -l200m anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR358/SRR35899${i}/SRR35899${i}.sra ./ #使用ascp下載缺虐,嗖嗖嗖~
done
fastq-dump --gzip --split-3 *.sra #sra轉為fastq
#以下3行原版來自生信技能樹Jimmy
find $RAW -name "*.gz" | grep 1.fastq.gz >1
find $RAW -name "*.gz" | grep 2.fastq.gz >2
paste 1 2 > raw_conf #將read1和read2各自的合集再整合到一起芜壁,形成一個數(shù)據(jù)配置文件
cp raw_conf $CLEAN

質控過濾

這里使用的是fastp,同時融合了質控、過濾的模式慧妄;
同時也可以使用fastqc + trimmomatic/ trim_galore進行

##################################################################
################## Part 2: QC & trim ############################
##################################################################
source activate rna-seq
cd $CLEAN
#下面四行原版來自生信技能樹Jimmy
cat raw_conf | while read id;do
line=(${id})
fq1=${line[0]}
fq2=${line[1]}

fastp -i $fq1 -I $fq2 -o out.$(basename $fq1) -O out.$(basename $fq2)-w 16
done
source deactivate

下載參考基因組和注釋文件

人類參考基因組選擇UCSC數(shù)據(jù)庫顷牌;注釋文件選擇GENCODE,https://www.gencodegenes.org/

下載好基因組,需要構建基因組索引

如果自己的項目做非模式物種塞淹,可以用二代三代測序數(shù)據(jù)組裝成參考轉錄組窟蓝,例如trinity組裝。如果做的物種有參考基因組饱普,就方便一些运挫,可以直接從相關數(shù)據(jù)庫中下載參考基因組

##################################################################
############### Part 3: prepare ref & index ######################
##################################################################

##Download hg19 
cd $GENOME
for i in $(seq 1 22) X Y M;do
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chr${i}.fa.gz;
done
gunzip *.gz
for i in $(seq 1 22) X Y M;do
cat chr${i}.fa >> hg19.fa
done
rm chr*
##或者也可以直接下載成品
#wget http://10.10.0.8/hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz

##Download GRCh38 https://www.gencodegenes.org/releases/current.html
cd $GTF
wget ftp://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_28/GRCh37_mapping/gencode.v28lift37.annotation.gtf.gz
gunzip *.gz
## hisat2 index 
cd $INDEX
hisat2-build -p 20 $GENOME/hg19.fa hg19 #-p為線程數(shù)

比對

##################################################################
######## Part 4: align & sort & index human samples:56-58 ########
##################################################################
source activate rna-seq
cd $ALIGN
for i in `seq 15 18`;do
hisat2 -t -p 20 -x $INDEX/hg19 \
-1 $CLEAN/out.SRR20382${i}_1.fastq.gz \
-2 $CLEAN/out.SRR20382${i}_2.fastq.gz \
-S SRR20382${i}.sam
samtools view -Sb SRR20382${i}.sam > SRR20382${i}.bam
samtools sort -@ 20 -o SRR20382${i}.sorted.bam SRR20382${i}.bam
samtools index SRR20382${i}.sorted.bam
rm *.sam
done
source deactivate
#關于排序:默認按染色體位置排序;-n根據(jù)read名排序套耕;-t根據(jù)tag排序

使用了samtools的三件套:轉換(view)谁帕、排序(sort)、建索引(index)
轉換: -S指輸入文件格式(不加-S默認輸入是bam)冯袍,-b指定輸出文件(默認輸出sam)【如果要bam轉sam匈挖,-h設置輸出sam時帶上頭注釋信息】
排序: 對bam排序,-@ 線程數(shù)康愤, -o輸出文件
索引: 結果會產(chǎn)生.bai文件【必須排序后才能建索引~就像體育課必須從高到矮排好以后再報數(shù)】

基本信息統(tǒng)計

##################################################################
################ Part 5: basic statistics #######################
##################################################################
source activate rna-seq
cd $STATS
for i in `seq 15 18`;do
samtools flagstat $ALIGN/SRR20382${i}.sorted.bam > SRR20382${i}.sorted.flag
done
#如果想根據(jù)flag提取特定區(qū)域儡循,比如想查看1號染色體100-10000的區(qū)域的信息
#samtools view -b -f 0x10 $ALIGN/SRR20382${i}.sorted.bam chr1:100-10000 > ${i}.flag.bam
#samtools flagstat ${i}.flag.bam

#使用RSeqQC統(tǒng)計
#先用bam_stat.py對bam文件統(tǒng)計,看下比對率
#bam_stat.py -i $ALIGN/SRR20382${i}.sorted.bam > SRR20382${i}.bam.stat
source deactivate
基本信息統(tǒng)計

reads計數(shù)

基于基因組水平征冷,可以用Htseq-count和featureCounts

  1. Htseq-count:它是用python寫的一個腳本择膝,conda install -c bcbio htseq -y安裝好以后可以直接拿來用

    需要比對文件sam/bam格式;需要基因組注釋文件gff/gtf格式检激。這兩個文件的染色體名稱必須相同肴捉,因為需要將比對位置和特征信息相匹配就要借助染色體名。
    它的工作原理是:先通過bam文件找到reads比對上的外顯子呵扛,然后去gtf文件中將外顯子的基因ID進行統(tǒng)計每庆,得到的結果就是未經(jīng)標準化的表達量

    source activate rna-seq
    cd $MATRIX
    for i in `seq 15 18`;do
    $CONBIN/htseq-count -s no -r name -f bam $ALIGN/SRR20382${i}.sorted.bam \
    $GTF/gencode.v28lift37.annotation.gtf \
    >SRR20382${i}.count 2>SRR20382${i}.log
    done
    source deactivate
    

    htseq-count的-s參數(shù)是strand意思,默認使用鏈特異性建庫方式今穿,也就是計算過程中要求read1只能和雙端測序的其中一條比較,read2只能和另一條比較伦籍;我們一般設置no即可蓝晒,表示每條read都和正負鏈比較一次;
    -r參數(shù) 兩個選擇name和pos 帖鸦,數(shù)據(jù)根據(jù)位置或者read名稱排序芝薇,默認name;
    -f參數(shù) 輸入文件格式bam/sam作儿;

    -m參數(shù)一般也就是默認union模式

    結果每個樣本輸出一個count文件洛二,其中包含了基因名和reads計數(shù);另外,如果你看到文件倒數(shù)幾行晾嘶,會發(fā)現(xiàn)還有幾行帶文字的
    htseq-count計數(shù)

    no_feature:比對區(qū)域與任何基因都沒有重疊
    ambiguous:比對區(qū)域與多個基因都發(fā)生重疊
    too_low_aQual:比對質量低于設定閾值(默認是10)
    not_aligned:無法比對上
    alignment_not_unique:比對位置不唯一

  2. featureCounts:隸屬于subread套件【相比于htseq更快】

    source activate rna-seq
    cd $MATRIX
    begin=$(date +%s)
    for i in `seq 15 18`;do
    featureCounts -T 20 -p -t exon -g gene_id -a $GTF/gencode.v28lift37.annotation.gtf  -o SRR20382${i}.feature.count $ALIGN/SRR20382${i}.bam
    done
    tim=$(echo "$(date +%s)-$begin" | bc)
    printf "time of featureCounts for 4 samples: %.4f seconds" $tim
    source deactivate
    #運行結果顯示:
    #time of featureCounts for 4 samples: 366.5310 seconds
    

    -T參數(shù)設置線程妓雾,
    -p參數(shù)表示針對雙端測序數(shù)據(jù),
    -t 參數(shù)默認將外顯子認定為基因組的一個feature(搜索特征)垒迂,
    -g參數(shù) 默認按照基因名來計數(shù)械姻,
    -a參數(shù) 輸入注釋文件,
    -o參數(shù) 輸出文件

    結果有兩個机断,一個count文件楷拳,一個summary文件


    featureCounts文件

對兩個軟件的結果進行合并

##合并htdeq生成的count文件到matrix.count
cd $MATRIX/htseq
perl -lne 'if ($ARGV=~/(.*).count/){print "$1\t$_"}' *.count | grep -v "_" >matrix.count
##合并featureCounts生成的count文件到matrix_2.count
cd $MATRIX/featureCounts
for i in `seq 15 18`;do
cut -f 1,7 SRR20382${i}.feature.count | grep -v "^#" > SRR20382${i}.matrix
sed -i '1d' SRR20382${i}.matrix
done
perl -lne 'if ($ARGV=~/(.*).matrix/){print "$1\t$_"}' *.matrix >matrix_2.count

統(tǒng)計一下兩個軟件的計數(shù)之和

#統(tǒng)計featureCounts
perl -alne '$sum += $F[2]; END {print $sum}' matrix.count
#結果是5882943
#統(tǒng)計htseq-count,結果是786338

歡迎關注我們的公眾號~_~  
我們是兩個農(nóng)轉生信的小碩,打造生信星球吏奸,想讓它成為一個不拽術語欢揖、通俗易懂的生信知識平臺。需要幫助或提出意見請后臺留言或發(fā)送郵件到Bioplanet520@outlook.com

Welcome to our bioinfoplanet!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奋蔚,一起剝皮案震驚了整個濱河市浸颓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旺拉,老刑警劉巖产上,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛾狗,居然都是意外死亡晋涣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門沉桌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谢鹊,“玉大人,你說我怎么就攤上這事留凭〉瓒螅” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵蔼夜,是天一觀的道長兼耀。 經(jīng)常有香客問我,道長求冷,這世上最難降的妖魔是什么瘤运? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮匠题,結果婚禮上拯坟,老公的妹妹穿的比我還像新娘。我一直安慰自己韭山,他們只是感情好郁季,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布冷溃。 她就那樣靜靜地躺著,像睡著了一般梦裂。 火紅的嫁衣襯著肌膚如雪似枕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天塞琼,我揣著相機與錄音菠净,去河邊找鬼。 笑死彪杉,一個胖子當著我的面吹牛毅往,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播派近,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼攀唯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了渴丸?” 一聲冷哼從身側響起侯嘀,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谱轨,沒想到半個月后戒幔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡土童,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年诗茎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片献汗。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡敢订,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出罢吃,到底是詐尸還是另有隱情楚午,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布尿招,位于F島的核電站矾柜,受9級特大地震影響,放射性物質發(fā)生泄漏泊业。R本人自食惡果不足惜把沼,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吁伺。 院中可真熱鬧,春花似錦租谈、人聲如沸篮奄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窟却。三九已至昼丑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夸赫,已是汗流浹背菩帝。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茬腿,地道東北人呼奢。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像切平,于是被迫代替她去往敵國和親握础。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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