• 可变剪切 | isoform | 提取特定exon的usage | DEXSeq


    参考:Inferring differential exon usage in RNA-Seq data with the DEXSeq package

    http://bioconductor.org/packages/release/bioc/html/DEXSeq.html 【教程已经非常清楚,需要耐心仔细的研读】

    跟着tutorial走一遍【生信码农的基本功:工具测试评比】

    关键问题:

    • gtf文件 - 必须是来自Ensembl的,否则没法正确运行,版本和格式是永恒的浪费时间的点
    • 单细胞bam - 必须合并,不然出来的都是0,全部都检测不到
    • 运行速度 - Python的wrapper是真的慢

    更新:

    之前一直模糊的概念,这里必须搞清楚!!!

    read count

    • 每个exon or exonic part的read count
    • 每个样本的read count总和,即library size 测序深度
    • 每个gene的read count总和,即该基因的所有transcript的read总数
    • relative usage of an exon,即 this / others,该exon的read总数 除以 比对到该gene其他exon的read总数 = 相对exon usage

    问题:

    • 把count数据转成CPM就能比较exon的CPM吗? - 不能,exon层面就不能简单用gene那一套了,必须先关注这个gene本身是否有差异表达
    • relative usage of an exon的数据可比吗? - 这就是校正了gene表达总量后的值,用来比较就更有意义了。

    参考:

    关于normalization - Introduction to DGE - ARCHIVED

    Gene length corrected trimmed mean of M-values (GeTMM) processing of RNA-seq data performs similarly in intersample analyses while improving intrasample comparisons


    先拆

    ls archive_20201222/bam/BAM.sortedByCoord.out/*.bam | sed "s:^:`pwd`/: "  > all.bam.csv
    
    cat all.bam.csv | grep "10c2" > 10c2.list
    cat all.bam.csv | grep "17C8" > 17C8.list
    cat all.bam.csv | grep "1C11" > 1C11.list
    cat all.bam.csv | grep "20c7" > 20c7.list
    cat all.bam.csv | grep "23C9" > 23C9.list
    cat all.bam.csv | grep "3C15" > 3C15.list
    cat all.bam.csv | grep "5c3" > 5c3.list
    cat all.bam.csv | grep "6c5" > 6c5.list
    cat all.bam.csv | grep "/IMR90" > IMR90.list
    cat all.bam.csv | grep "IMR-N_Diff-D20" > IMR-N_Diff-D20.list
    cat all.bam.csv | grep "IMR-N_Diff-D40" > IMR-N_Diff-D40.list
    cat all.bam.csv | grep "iPSC-IMR90" > iPSC-IMR90.list
    cat all.bam.csv | grep "iPSC-UE" > iPSC-UE.list
    cat all.bam.csv | grep "/UE" | grep -v "N_Diff" > UE.list
    cat all.bam.csv | grep "UE-N_Diff_D20" > UE-N_Diff_D20.list
    cat all.bam.csv | grep "UE-N_Diff-D40" > UE-N_Diff-D40.list
    
    split -d -n l/5 10c2.list 10c2.list
    split -d -n l/5 17C8.list 17C8.list
    split -d -n l/5 1C11.list 1C11.list
    split -d -n l/5 20c7.list 20c7.list
    split -d -n l/5 23C9.list 23C9.list
    split -d -n l/5 3C15.list 3C15.list
    split -d -n l/5 5c3.list 5c3.list
    split -d -n l/5 6c5.list 6c5.list
    split -d -n l/5 IMR90.list IMR90.list
    split -d -n l/5 IMR-N_Diff-D20.list IMR-N_Diff-D20.list
    split -d -n l/5 IMR-N_Diff-D40.list IMR-N_Diff-D40.list
    split -d -n l/5 iPSC-IMR90.list iPSC-IMR90.list
    split -d -n l/5 iPSC-UE.list iPSC-UE.list
    split -d -n l/5 UE.list UE.list
    split -d -n l/5 UE-N_Diff_D20.list UE-N_Diff_D20.list
    split -d -n l/5 UE-N_Diff-D40.list UE-N_Diff-D40.list
    

      

    合并

    samtools merge -b UE.bam.list -@ 2 -r -p UE.bam
    samtools merge -b UE.bam.list -@ 2 -r -p UE.bam
    

      

    批量【先合并两个测试一下】

    for i in `ls {IMR90.list0*,17C8.list0*}`
    do
    echo $i
    samtools merge -b $i -@ 2 -r -p ${i}.bam &&
    echo "done!!!"
    done
    

      

    准备特殊的注释文件 & 计数

    gencode版本

    # gencode
    # ~/databases/hg19/
    python ~/softwares/R_lib_361/DEXSeq/python_scripts/dexseq_prepare_annotation.py gencode.v27.annotation.gtf gencode.v27.annotation.DEXSeq.chr.gff
    
    # ~/project/scRNA-seq/rawData/smart-seq/archive_20201222/bam/BAM.sortedByCoord.out/IMR90-E2-A17_STAR_Aligned.sortedByCoord.out.bam
    python ~/softwares/R_lib_361/DEXSeq/python_scripts/dexseq_count.py -p yes -f bam ~/databases/hg19/gencode.v27.annotation.DEXSeq.chr.gff ~/project/scRNA-seq/rawData/smart-seq/merged.bams/bam/IMR90.list00.bam tmp.result.txt
    

      

    ensemble版本

    ############################################
    # ensemble
    # ~/references/SUPPA2/ref/hg19/
    python ~/softwares/R_lib_361/DEXSeq/python_scripts/dexseq_prepare_annotation.py Homo_sapiens.GRCh37.75.formatted.gtf Homo_sapiens.GRCh37.75.DEXSeq.chr.gff
    
    python ~/softwares/R_lib_361/DEXSeq/python_scripts/dexseq_count.py -f bam ~/references/SUPPA2/ref/hg19/Homo_sapiens.GRCh37.75.DEXSeq.chr.gff ~/project/scRNA-seq/rawData/smart-seq/merged.bams/bam/IMR90.list00.bam tmp.result.txt
    

      

    批量运行

    # 批量运行
    for i in `ls ~/project/scRNA-seq/rawData/smart-seq/merged.bams/bam/*.bam`
    do
    python ~/softwares/R_lib_361/DEXSeq/python_scripts/dexseq_count.py -f bam ~/references/SUPPA2/ref/hg19/Homo_sapiens.GRCh37.75.DEXSeq.chr.gff $i ${i}.result.txt &&
    echo $i
    done
    

     

    文件如下:

    chr15   dexseq_prepare_annotation.py    aggregate_gene  72491370        72524164        .       -       .
           gene_id "ENSG00000067225"
    chr15   dexseq_prepare_annotation.py    exonic_part     72491370        72491372        .       -       .
           gene_id "ENSG00000067225"; transcripts "ENST00000564440+ENST00000319622"; exonic_part_number "001"
    chr15   dexseq_prepare_annotation.py    exonic_part     72491373        72491376        .       -       .
           gene_id "ENSG00000067225"; transcripts "ENST00000319622+ENST00000565184+ENST00000389093+ENST00000335181+ENST00000568883+ENST00000564440"; exonic_part_number "002"
    chr15   dexseq_prepare_annotation.py    exonic_part     72491377        72491445        .       -       .
           gene_id "ENSG00000067225"; transcripts "ENST00000319622+ENST00000565184+ENST00000389093+ENST00000335181+ENST00000565143+ENST00000568883+ENST00000564440"; exonic_part_number "003"
    chr15   dexseq_prepare_annotation.py    exonic_part     72491446        72491930        .       -       .
           gene_id "ENSG00000067225"; transcripts "ENST00000567118+ENST00000319622+ENST00000565184+ENST00000389093+ENST00000335181+ENST00000449901+ENST00000565143+ENST00000568883+ENST00000564440"; exonic_part_number "004"
    

      

    很明确,每一个都是pseudo exon【有时候会把exon切得非常碎,需要借助可视化工具来操作】

    # check
    # https://www.ncbi.nlm.nih.gov/gene/5315
    PKM ENSG00000067225
    

      

    总结:

    • 对于大型bam文件来说,这个计数实在是太慢了,需要耐心等待
    • 操作明确,对于pseudo exon进行read的计数,然后用已有的成熟工具来做差异分析
    • 该工具画图居然需要root权限,实在是匪夷所思

     可以作为一个AS分析的备选工具。

    参考分析目录:

    CGS: project/scPipeline/AS/DEXSeq/DEXSeq.ipynb

    CGS: project/scRNA-seq/rawData/smart-seq/merged.bams/

    待续~

  • 相关阅读:
    Unzip 解压报错
    Linux ftp安装
    关于vsftp出现Restarting vsftpd (via systemctl): Job for vsftpd.service failed because the control 的解决办法
    ASP.NET开发知识总结
    移动端开发调试方法总结
    移动H5优化指南
    基于windows下,node.js之npm
    微服务理解
    SQL Server 触发器
    jQuery验证控件jquery.validate.js使用说明+中文API
  • 原文地址:https://www.cnblogs.com/leezx/p/14719913.html
Copyright © 2020-2023  润新知