RNA-seq的比对tutorial

2020.3.17#鉴于liftover转坐标不给力,我用了ncbi的Remap,使用方面看这篇参考
https://www.jianshu.com/p/41e5280f59c3
还可以选BED转GTF,但是没结果,还是老老实实转bed吧。
秀一下liftover和remap的结果比对,基本一致

image.png

image.png

所以就用这个bed文件构造我的saf文件,但是后来发现不管是liftover还是remap都会有random还有unknown chr的存在,需要手动把这一部分的基因组坐标删去。
sed '/random/d' cageenhancer38.saf > cageenhancer381.saf
sed '/chrUn_KI/d' cageenhancer381.saf > cageenhancer382.saf
删掉之后就可以featurecounts了。

2020.3.15#liftover转坐标

  1. 首先转一下cage enhancer的hg19tohg38坐标,用的是liftover

wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/liftOver

下载到biosoft/ucsctools,记得存readme,(后来不这么下了,下到我自己的文件夹里和seq数据一起

2 .liftover的使用
借鉴文章https://www.jianshu.com/p/c6da6f4dadd3
https://www.plob.org/article/9541.html
linux版需要gblic2.17,不知道怎么弄,就用网页版做完了,下载到本地然后上传转格式
更:https://blog.csdn.net/u011262253/article/details/99056385这个文章介绍了怎么解决gblic not found的问题,然并卵,我不敢用sudo处理

上传到服务器的bed文件,被在线的liftover重新塑造了格式,用gawk重新编辑一下


image.png

用了三个gawk文件处理分别是
a. mksaf.gawk

BEGIN{FS=":"; OFS="-"}
{print $0,$1,$2}

gawk -f mksaf.gawk ./hglft_genome_6b6bf_c72f70.bed > tmp1.bed
#hglft这个是liftover处理过上传的bed

b.mksaf1.gawk


image.png
[yujia@cluster enhancer]$ cat mksaf1.gawk

BEGIN {FS="-"; OFS=""}
{print $1,"-",$2," ",$3," ",$4," ",$5}

gawk -f mksaf1.gawk ./tmp1.bed > tmp2.bed
image.png

其实可以用printf处理,更加方便
c. mksaf2.gawk
这次把+-3000的操作加进去,做出saf文件

[yujia@cluster enhancer]$ cat mksaf2.gawk
{
text1= ( $3 + $4 ) / 2 - 3000
text2= ( $3 + $4 ) / 2 + 3000
printf "%s %s %d %d %s\n",$1,$2,text1,text2,"."}
#不知道为啥有科学计数,于是我用printf处理了一下格式
gawk -f mksaf2.gawk ./tmp3.bed > cageenhancer38version.saf
image.png

对于下载好,并且完成sra转fastq的数据,进行hisat2比对

hisat2比对

参考https://www.jianshu.com/p/4253c595bdd3
https://www.jianshu.com/p/479c7b576e6f
https://bbs.csdn.net/topics/393548188

hisat2 -t -q -X 500 -x /data/yujia/biosoft/ref_data/genome/ensemble_38_93/Homo_sapiens.GRCh38.93_genome_tran 
-1 /data/yujia/jzm/aml/data/RNAseq/SRR8366760.sra_1.fastq -2 /data/yujia/jzm/aml/data/RNAseq/SRR8366760.sra_2.fastq -S SRR8366760.bam

-t,输出载入index和reads比对所花的时间
-q,输入为fastq文件
-p,指定线程数
-X,指定fragment的最大长度(最小长度为-I),默认500,设置以后,不支持gap比对,-X和-I数值相差越大,运行越慢
-x,指定索引文件
-1,指定双端测序中第一个文件
-2,指定双端测序中第二个文件
-S,指定输出sam文件的文件名

下面是sam转bam

for ((i=3;i<=7;i++));
do
    samtools view -S SRR01428${i}.sam -b > SRR01428${i}.bam
    samtools sort SRR01428${i}.bam SRR01428${i}.sorted
    samtools index SRR01428${i}.sorted.bam
#这个index感觉不需要
done
#比对一定要用readname进行sorts

合并同一生物学重复的bam

samtools merge groalign1.merge.bam SRR014283.sorted.bam SRR014284.sorted.bam SRR014285.sorted.bam
samtools merge groalign2.merge.bam SRR014286.sorted.bam SRR014287.sorted.bam

所以理论上我应该先排序,不用index,然后merge,merge之后保持着sorted的目录,然后直接index就可以了

qsub -l h_vmem=20G,p=10 -q all.q

featurecount

https://www.bioinfo-scrounger.com/archives/407/
https://www.jianshu.com/p/e9742bbf83b9

featureCounts -- verbose -F SAF -T 6 -p -a /data/yujia/jzm/aml/data/enhancer/cageenhancer38version.saf -o /data/yujia/jzm/aml/data/enhancer/GROseq_featureCounts.txt /data/yujia/jzm/groseqtest/sra/groalign1.merge.bam

-a 输入GTF/GFF基因组注释文件

-p 这个参数是针对paired-end数据

-F 指定-a注释文件的格式,默认是GTF

-g 从注释文件中提取Meta-features信息用于read count,默认是gene_id

-t 跟-g一样的意思,其是默认将exon作为一个feature

-o 输出文件

-T 多线程数

hisat-featurecounts-deseq2的流程

https://www.jianshu.com/p/13b1b728f101
https://pzweuj.github.io/2018/07/18/rna-seq-4.html

https://www.jianshu.com/p/27bf1e144d55
这是是非常好的有saf文件如何用的流程

http://www.bio-info-trainee.com/2022.html
http://www.bio-info-trainee.com/745.html
这是htseqcount和bedtools计数的区别,因为我只有bed,featurescount不支持,那么用bedtools计数行不行呢??

https://blog.csdn.net/Cassiel60/article/details/89310811
bed计数的流程

https://www.jianshu.com/p/05aae63d7c52?from=singlemessage
虽然是做chip-seq的,而且chip-seq的流程非常亲民,但是也介绍了gtf文件格式的构建问题。如果saf文件还不能用,我就还是构建个gtf文件吧。。更新,saf又可以用了,还是用saf比较简单。

https://www.jianshu.com/p/69b15fbb2b5a
介绍GTF格式,里面有一个enhancer的gtf,但是我也没看懂。。。

DEseq2的使用流程
https://www.jianshu.com/p/26511d3360c8
标准化的原理
http://www.360doc.com/content/18/1007/19/51784026_792756336.shtml

hisat-stringtie-balldown三连
https://www.jianshu.com/p/1f5d13cc47f8

三组数据的差异性分析
https://www.sohu.com/a/209245114_464200
https://www.sohu.com/a/209245114_464200
https://www.jianshu.com/p/e2828ef9c7e5?from=singlemessage
http://blog.sciencenet.cn/home.php?mod=space&uid=118204&do=blog&id=1222648

洲更的转录组
https://www.jianshu.com/p/5f94ae79f298
洲更的富集分析
https://www.jianshu.com/p/5c8c6a380939
洲更的差异分析,有对角线图的画法
https://www.jianshu.com/p/b55276e46f0c
这个还有我三组数据一起处理的可行性,很重要
https://www.jianshu.com/p/ffa11736092a
洲更的水稻实战文章,图挺好看的

绘制热图
https://blog.csdn.net/XIUXIU179/article/details/79975702
http://www.biomarker.com.cn/archives/15215
https://www.jianshu.com/p/b55276e46f0c

GO分析
介绍
https://www.jianshu.com/p/49ceeae7fd95
https://www.cnblogs.com/wangshicheng/p/10123859.html
操作
https://www.jianshu.com/p/5c8c6a380939
https://www.jianshu.com/p/e8e04f34fd7c(这个全一点)
enrichGO默认gene type是entrezID,但其他OrgDb支持的类型(ENSEMBLE,SYMBOL等)都可以通过参数keyType指定。
gene的ID type不一样,富集的结果也会有稍微的差异。
原gene list是entrezID,直接通过bitr转换成ensembl和symbol,分别做enrichGO。
发现entrezedID可能对应多个ENSEMBL的。
entrezedID和SYMBOL是一一对应的
1)因为ensembl在库中多个ID会对应同一个entrez,因此四个数值都要大一些
2)entrez和symbol 可能是因为是在db中是一一对应?,因此结果一模一样。
3)Y叔建议尽量不用SYMBOL做enrichGO。


链接:https://www.jianshu.com/p/e8e04f34fd7c
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

https://www.jianshu.com/p/056902a2e3a9
这个解决了GO分析的代码,用这个

GO富集分析示例
https://blog.csdn.net/devcloud/article/details/94549627

RPM FPKM 等概念详解与计算
http://blog.sciencenet.cn/blog-1113671-1038659.html

你可能感兴趣的:(RNA-seq的比对tutorial)