2023-03-11

#RNA-seq實(shí)戰(zhàn)代碼

#正常情況下公司給我們的數(shù)據(jù)就直接是fastq格式文件

#使用fastqc查看測序數(shù)據(jù)質(zhì)量,就會得到*.html文件

fastqc *.fastq.gz

#在html文件所在目錄下將*.html文件拷入一個單獨(dú)的文件夾:cp *.html 新建的單獨(dú)的文件夾所在的目錄

#將linux中的文件復(fù)制到桌面

cp -r 要復(fù)制的文件所在目錄 /mnt/c/Users/happy/Desktop/

#將所有的質(zhì)量報(bào)告合并:對html文件所在目錄跑一下multiqc:multiqc 新建的單獨(dú)的文件夾所在的目錄

multiqc 新建的單獨(dú)的文件夾所在的目錄 ? (要在rnaseq3.7環(huán)境中跑這個代碼)

#使用trim_galore 過濾fastq文件中質(zhì)量不好的reads和remove接頭序列

ls /home/happy/project/airway/raw/*_1.fastq.gz >1

ls /home/happy/project/airway/raw/*_2.fastq.gz >2

#生成只包含*—1.fastq.gz和*—1.fastq.gz文件的目錄

paste 1 2 >config

#過濾文件打算存儲的位置

dir='/home/happy/project/airway/clean/'

#循環(huán)如下:

cat config |while read id;

do

arr=($id)

fq1=${arr[0]}

fq2=${arr[1]}

nohup trim_galore -q 25 --phred33 --stringency 3 --length 36 -e 0.1 --paired $fq1 $fq2 --gzip -0 $dir &

done

#3、再次使用fastqc查看過濾后的文件

#比對,轉(zhuǎn)錄組比對主要是使用hisat2、subjunc、star;基因組主要是使用bwa和bowtie2

#比對首先要下載參考基因組構(gòu)建索引index,也可以直接在官網(wǎng)下載index,人類和小鼠的index有現(xiàn)成的

#方法一:直接在hisat2官網(wǎng)下載index,選擇合適的物種

#hisat2官網(wǎng):http://daehwankimlab.github.io/hisat2/download/

#構(gòu)建存儲索引的文件夾

mkdir index

cd index

wget 復(fù)制鏈接

#解壓index文件

tar -zxvf *.tar.gz

#刪除壓縮包

rm -rf *.tar.gz

#方法二:自己下載參考基因組和注釋文件構(gòu)建index

#下載基因組文件

wget 參考基因組鏈接

tar -zxvf ?*.tar.gz

#下載注釋文件

wget 注釋文件鏈接

gunzip *.gtf.gz

extract_exons.py hg19.ncbiRefSeq.gtf > genome.exon ? ? ? ?其中hg19.ncbiRefSeq.gtf是解壓后的注釋文件

extract_splice_sites.py hg19.ncbiRefSeq.gtf > genome.ss

#建立index

hisat2-build hg19.fa --ss genome.ss --exon genome.exon genome_tran

#4.比對

hisat2 --dta -t -x /data/RNAseq/mm10/genome -1 /data/RNAseq/cleandata/trim_galoredata/CK-4_1_val_1.fq.gz -2 /data/RNAseq/cleandata/trim_galoredata/CK-4_2_val_2.fq.gz -S cleandata/hisat2_mm10data/CK4.sam

#/data/RNAseq/mm10/ 是參考基因組文件所在目錄,genome這個不是文件夾,是index文件的前綴,mm10文件下并沒有這個文件,如果不加genome就會發(fā)生報(bào)錯

#-1和-2分別表示雙端測序的1個文件,后面跟的是文件路徑

#-S 后面跟的是輸出數(shù)據(jù)所在文件夾

#-x 后面接的是索引文件

#命令沒有問題的話,出現(xiàn)下面提示表示程序正在執(zhí)行,就去干其他的,等執(zhí)行結(jié)束再往下:

Time loading forward index: 00:02:51

Time loading reference: 00:00:16

#寫循環(huán)批量處理(for ?in 循環(huán)和while循環(huán)各寫一個)

#for in 循環(huán),創(chuàng)建腳本文件

vim hisat2_mm10_batch.sh

#輸入下面內(nèi)容:

for i in CK-7 CK-8 HGJ-10 HGJ-6 HGJ-9

do

hisat2 --dta -t -p 8 -x /data/RNAseq/mm10/genome

-1 /data/RNAseq/cleandata/trim_galoredata/"$i"_1_val_1.fq.gz

-2 /data/RNAseq/cleandata/trim_galoredata/"$i"_2_val_2.fq.gz

-S /data/RNAseq/cleandata/hisat2_mm10data/"$i".sam;done

#保存腳本,再運(yùn)行腳本

bash hisat2_mm10_batch.sh

#while 循環(huán)

#先創(chuàng)建存儲了SRR號的文件。例如sra.txt

less sra.txt|while read id ;

do

hisat2 --dta -t -p 8 -x /data/RNAseq/mm10/genome

-1 /data/RNAseq/cleandata/trim_galoredata/"$i"_1_val_1.fq.gz

-2 /data/RNAseq/cleandata/trim_galoredata/"$i"_2_val_2.fq.gz

-S /data/RNAseq/cleandata/hisat2_mm10data/"$i".sam;done

#subjunc比對會直接輸出bam文件,就不用后續(xù)的sam轉(zhuǎn)bam文件

subjunc -T 5 -i /home/happy/project/airway/reference/mm10/genome -r ${id}_1_val_1.fq.gz -R ${id}_2_val_2.fa.gz -o ${id}.subjunc.bam

#5.samtools將sam文件轉(zhuǎn)bam文件,samtools可以進(jìn)行格式轉(zhuǎn)換、排序、索引

#第一步:轉(zhuǎn)換

#SRR.txt為存儲了SRR號的文件

單樣本處理:samtools view -@8 -b SRR1039509.sam > SRR1039509.bam

多樣本處理:less /home/happy/project/airway/hisat2/SRR.txt|while read id ;do samtools view -@8 -b {$id}.sam > {$id}.bam done

#第二步:排序 samtools sort

#其中 -l是(-L的小寫)

單樣本處理:samtool sort -@ 8 -l -o SRR1039508.bam.sort SRR1039508.bam

多樣本批量處理:ls /home/happy/project/airway/SRR.txt |while read id ;do samtools sort -@ 8 -l {$id}.bam -o {$id}.bam.sort;done

#第三步:建立索引(index命令)在SRR1039508.bam.sort所在文件夾下操作

單樣本處理:samtools index ?SRR1039508.bam.sort SRR1039508.bam.index

查看sam文件直接用less,查看bam文件用samtools view SRR1039508.bam |less -S(分頁查看) 可以看出來是按pos排序還是按name排序,這里是按pos(染色體位置)

#第四步:查看reads比對情況(flagstat命令),輸出.falgstat文件

samtools flagstat -@ 8 SRR1039508.bam.sort > SRR1039508.bam.flagstat

#第五步:igv可視化比對結(jié)果

先將bam文件轉(zhuǎn)為bw文件,要先構(gòu)建索引 samtools index SRR1039508.bam.sort

再使用bamCoverage轉(zhuǎn)換格式:bamCoverage -b SRR1039508.bam.sort -o SRR1039508.sort.bw

再將bw文件復(fù)制到桌面:cp *.bw /mnt/c/Users/happy/Desktop/ ? ?(bw文件要指定文件所在目錄)

igv里面選擇file 載入bw文件

#6.計(jì)數(shù)(htseq、featureCounts )通常用featureCounts計(jì)數(shù)

htseq計(jì)數(shù)代碼(很慢)

htseq-count -f bam -r pos /home/happy/project/airway/hisat2data/SRR1039508.bam.sort /home/happy/project/airway/reference/gencode.v10.annotation.gtf.gz

#-f 指定bam文件格式

#-r 指定排序方式,這里是按位置position

#/home/happy/project/airway/hisat2data/SRR1039508.bam.sort ?進(jìn)行計(jì)數(shù)的bam文件

#/home/happy/project/airway/reference/gencode.v10.annotation.gtf.gz ?注釋文件所在目錄

featureCounts計(jì)數(shù)(很快):參考基因組和GTF/GFF/SAF注釋文件來自同一個網(wǎng)站,同一個版本

featureCounts 需要兩個輸入文件:比對產(chǎn)生的BAM/ SAM文件(一般會用bam文件,因?yàn)樗伎臻g小);區(qū)間注釋文件(GTF格式, SAF格式)

代碼1:featureCounts -T 10 -a ../reference/gencode.v10.annotation.gtf.gz -o count.txt -p -B -C -f -t exon -g gene_id /home/happy/project/airway/hisat2data/*sort

代碼2:featureCounts -T 10 -a ../reference/gencode.v10.annotation.gtf.gz -o count1.txt -p -B -C -t exon -g gene_name /home/happy/project/airway/hisat2data/*sort

-g ?后面也可以接gene_name

#如果代碼1比對率不高,說明不是全外顯子測序,則用代碼2

-T 指定線程數(shù) ? ?-f 如果-f被設(shè)置,那將會統(tǒng)計(jì)feature層面的數(shù)據(jù),如exon-level,否則會統(tǒng)計(jì)meta-feature層面的數(shù)據(jù),如gene-levels(feature數(shù)目指的是exon數(shù)目 ? meta-feature 指的是基因數(shù)目)

-a 參考GTF文件名 ? ? -F 參考文件的格式,一般為GTF/SAF ,默認(rèn)為GTF ? ?-p 雙端測序 ? ?-B ?在-p選擇的條件下,只有兩端reads都被比對上的fragment才會被統(tǒng)計(jì)

-t 設(shè)置feature-type,-t指定的必須是gtf中有的feature,同時(shí)read只有落到這些feature上才會被統(tǒng)計(jì)到,默認(rèn)是“exon”

-g 默認(rèn)為gene_id ? ?-o 輸出文件的名字,可輸出被統(tǒng)計(jì)數(shù)據(jù)的txt文本及summary文本

/home/happy/project/airway/hisat2data/*sort ?被統(tǒng)計(jì)的文件所在目錄及名稱

#featureCounts查看及結(jié)果解析:less -SN ?count.txt ?(-SN可以使查看是排版更好)

Geneid:基因的ensemble基因號; ? Chr:多個feature所在的染色體編號; ?Start:多個feature起始位點(diǎn),與前面一一對應(yīng); ?End:多個feature終止位點(diǎn),與前面一一對應(yīng)

Strand:正負(fù)鏈 ? Length:基因長度 ?sampleID:一列代表一個樣本,數(shù)值表示比對到該基因上的read數(shù)目

feature數(shù)目指的是exon數(shù)目 ? meta-feature 指的是基因數(shù)目

#7.表達(dá)矩陣探索

multiqc 要在3.7版本的python才不會報(bào)錯,所以要創(chuàng)建pyhton3.7環(huán)境下下載multiqc :conda create --name rnaseq3.7 python=3.7

conda activate rnaseq3.7

conda install -c bioconda -c conda-forge multiqc

multiqc count1.txt.summary ? ?就會得到一個html文件 ?復(fù)制到電腦桌面看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 生信學(xué)習(xí)筆記 linux部分功能 查看文件夾 工具 選項(xiàng) 可以設(shè)置鼠標(biāo)功能 可以設(shè)置右鍵粘貼 雙擊這個窗口可以再打...
    Vikenn閱讀 1,174評論 1 4
  • 一、測序數(shù)據(jù)的準(zhǔn)備 新建工作目錄,RNASeq-analysis mkdirRNASeq-analysiscdRN...
    胡小兵plus閱讀 31,605評論 2 37
  • control+左右鍵:光標(biāo)在單詞之間跳轉(zhuǎn)control+a:光標(biāo)跳到首control+e:光標(biāo)跳到尾more 查...
    王琪_738c閱讀 688評論 0 0
  • 一、文章數(shù)據(jù)下載 安裝miniconda sudo apt-get install wgetwget https:...
    黑白配_b74c閱讀 191評論 0 1
  • RNAseq實(shí)際操作(實(shí)戰(zhàn)) 首先聲明,雖然是實(shí)戰(zhàn),但是其實(shí)是學(xué)習(xí)筆記而已,初學(xué),參考了大量大神的博客和帖子,還有...
    zd200572閱讀 4,425評論 0 29