美文网首页
技能——如何判断测序数据是否是链特异性

技能——如何判断测序数据是否是链特异性

作者: Bio_Infor | 来源:发表于2022-01-12 17:12 被阅读0次

    前面的帖子一文阐述链特异性测序——stranded? reverse-stranded? un-stranded?分享了链特异性测序的相关内容,今天继续分享一个内容: 如何判断测序数据是否是链特异性?

    方法一

    查找原文描述,一般在 method 中,由此判断是否是链特异性测序。

    方法二

    比对完成后,将 bam 文件在 igv 上进行可视化,以单端测序为例,如果你发现测序的read方向总是与所在基因的方向一致或者总是相反,那么就是链特异性测序;反之,则不是。

    方法三

    利用 RseQC 进行判断,其python小脚本 infer_experiment.py 可以帮助我们判断链特异性测序。

    • 安装
    conda install -c bioconda rseqc
    

    安装完成后发现,其实并没有安装软件,而是多了一些脚本,其中有一个就叫 infer_experiment.py

    • 使用
      基本使用格式如下:
    Usage: infer_experiment.py [options]
    
    
    Options:
      --version             show program's version number and exit
      -h, --help            show this help message and exit
      -i INPUT_FILE, --input-file=INPUT_FILE
                            Input alignment file in SAM or BAM format
      -r REFGENE_BED, --refgene=REFGENE_BED
                            Reference gene model in bed fomat.
      -s SAMPLE_SIZE, --sample-size=SAMPLE_SIZE
                            Number of reads sampled from SAM/BAM file.
                            default=200000
      -q MAP_QUAL, --mapq=MAP_QUAL
                            Minimum mapping quality (phred scaled) for an
                            alignment to be considered as "uniquely mapped".
                            default=30
    

    部分参数:
    (1) -i 比对生成的bam文件(可以不用排序)
    (2) -r gtf转bed12文件产生的bed文件。技能——gtf转为bed12
    (3) -s 从所有的reads中抽取多少进行统计(默认200k)
    (4) -q unique map的mapq阈值

    • 实例
    单端测序
    infer_experiment.py -i HCT116_3.bam -r ~/reference/bowtie_rawfile/hg38.ensGene.bed -q 20
    
    Loading SAM/BAM file ...  Total 200000 usable reads were sampled
    This is SingleEnd Data
    Fraction of reads failed to determine: 0.0490
    Fraction of reads explained by "++,--": 0.8119
    Fraction of reads explained by "+-,-+": 0.1391
    

    你会发现有接近80%的reads都是比对到哪条链,基因就在哪条链,占绝对优势。这个时候我们有理由认为这个单端测序的数据就是链特异性测序的数据。

    详细来看:++ 中第一个 + ,表示这个read比对上正链,第二个 +,表示这个read所在的基因也是位于正链的。

    双端测序
    infer_experiment.py -i Aligned.out.bam -r ~/reference/refdata-GRCm39/GRCm39.genes.bed -q 20
    
    Reading reference gene model /share/home/ShuiKM/reference/refdata-GRCm39/GRCm39.genes.bed ... Done
    Loading SAM/BAM file ...  Total 200000 usable reads were sampled
    This is PairEnd Data
    Fraction of reads failed to determine: 0.0712
    Fraction of reads explained by "1++,1--,2+-,2-+": 0.4649
    Fraction of reads explained by "1+-,1-+,2++,2--": 0.4640
    

    这个双端测序的数据显然是非链特异性的,详细来看:
    1++,1--,2+-,2-+ 表示read1比对上的链和基因所在的链一样,read2比对上的链和基因所在的链是相反的;
    1+-,1-+,2++,2-- 表示read1比对上的链和基因所在的链是相反的,read2比对上的链和基因所在的链一样。
    问题就在于这两种情况的占比是几乎一样的,说明read的链与基因所在的链完全是随机的,显然就不是链特异性测序了。

    完结,撒花~

    相关文章

      网友评论

          本文标题:技能——如何判断测序数据是否是链特异性

          本文链接:https://www.haomeiwen.com/subject/tpbwcrtx.html