zoukankan      html  css  js  c++  java
  • 生信学习-二代测序知乎专栏总结[转]

    转自:https://zhuanlan.zhihu.com/p/20702684

    1.基本概念

    • flowcell 是指Illumina测序时,测序反应发生的位置,1个flowcell含有8条lane
    • lane 每一个flowcell上都有8条泳道,用于测序反应,可以添加试剂,洗脱等等
    • tile 每一次测序荧光扫描的最小单位
    • reads 指测序的结果,1条序列一般称为1条reads
    • bp base pair 碱基对,用于衡量序列长度
    • 双端测序 只一条序列可能比较长如500bp,我们可以两端每端各测150bp
    • junction 上面说的双端测序,中间会留有200bp测不到的东西,我们叫junction
    • adapter 就是测序中需要的一段特定的序列,有类似于引物的功能
    • primer PCR中的引物

    cDNA:complementary DNA互补脱氧核糖核酸。以一种逆转录酶,以mRNA为模板做成的复制品,将真核生物的基因(以mRNA的形式)复制到原核生物细胞中。

    //哭,昨天写的没保存啊,写了好多呢,哭死。

    2.BWT算法

    来自视频:https://www.bilibili.com/video/av15743137

    二代序列:较短250bp,相比较精度较高1%=Q30.

    对于三代测序来说:数据较长,但是不稳定。

    首先讲到了双序列比对——pairwise alignment,有全局比对(Needleman worsh)、局部比对(Smith wosen)

    但是对于基因组比较的时候,相当于把seq1换成了ref,先从Seq2里找到一个seed,通过seed找到ref的index,再把这个ref附近的序列做pairwise alignment,

    *高通量测序中,index的作用:区分各组样本数据,每个样本都有不同的index,在测序时会通过index将不同的样本分开,形成不同的文件夹。

    那么第一步是比较重点的:第一代有华大的SOAP,MAQ等,是将基因组打为一小段一小段的,然后通过哈希存储,知道这一小短序就能知道它所在的位置,但是占用内存高速度慢找的准。

    第二代就是bowtie解决速度的问题。

    将测序数据比对到参考基因组

    BWT算法:最早用于做数据压缩。

    比如对一个初始序列:ACAACG;

    第一部处理+$,进行平移:得到一个矩阵,称为原始矩阵Raw M:

    ACAACG$

    $ACAACG

    G$ACAAC

    CG$ACAA

    ACG$ACA

    AACG$AC

    CAACG$A

    将矩阵进行转换 ,M': ,默认将$开头作为第一行:

    很明显这个第二个矩阵,就是将第一个矩阵以字母顺序排序开头而已。

    需要将第1列作为F列,最后一列作为L(ast)列;

    那么转换矩阵中F和L的关系:

    1)同一行内,L是F的前一个字符;(因为它就是那样平移过去的)

    2)单字母的相对位置不变,比如L中的第一个C是对应F中的第一个C

    那么:只需存储L和相对位置,可以根据L推出F,根据LF可以知道整个ref。那么怎么找呢?

    倒着查找即可。首先最后一个是$,那么在L的$对应F中的第一个,对应L是G,那么可以得出$前是G;

    L中的G对应F中的G,对应L中的C,可以得出G前面是C,以此类推。哇哦果然可以进行数据压缩。

     那么上面进行的是整个基因组的比对,但是如果想进行一个段序列比如CAA呢?下面进行一下演示:

     

    比对时也是倒序比对的,有时会允许出错,有一个mismatch阈值,那么最终可以比对上。

     所以最终只需要存储L和每个字母的位置即可,F可以根据L中的字母拍出来序啊,所以不用存储的。

    有个同学提问说,允许mismatch是否允许gap?(好厉害啊,我怎么都没考虑,只是接受不去思考啊!)

    bowtie1不支持Gap open,中间不允许插入缺失。比对过程下:

    序列大约长度为36bp,将前28作为高质量区域,并且高质量又平分为两段,前半段14为HQ,后半段14为LQ,先用HQ作为seed去上述过程,再用LQ作为seed去做上述过程,如果总的mismatch<=2,那么就接着进行后面的比对,如果>2,就认为比对不上,这个2参数是可以调整的。

    bowtie2的比对过程:支持了gap open问题;

     第一步选择seed区域,

    有两种方法:

    1.每个fragment长度是20,其中前18是一个seed,再跟两个gap,这样用seed片段去比对。

    2.10-16,比如第一次选1-16,那么第二次选10-26,有6个的overlap,也就是window=10;

    这样通过将seed与基因组进行比对,就可以知道当前序列在基因组中的大致位置,将在基因组中的序列取出,此时再用NW或者SW算法进行比对,这个时候就可以有gap了,但是seed中间是不能有map的。

    unique map包含两种: 一种是在基因组中只有一个map;另一:有一个map得分很高,另一个得分低很多。

    但是up主认为这种没有太大的意义,因为基因组中duplication非常多。

    3.第一代测序技术Sanger

     //看一下那个视频和博客。

     

     

  • 相关阅读:
    Winform—C#读写config配置文件
    C# 中Web.config文件的读取与写入
    Redis配置文件详解
    三层架构之泛型抽象
    Linq To Sql语法及实例大全
    junit单元测试(keeps the bar green to keeps the code clean)
    观 GT Java语言管理系统的感悟
    java考核完的心得
    15个C++项目列表
    C++文件操作(fstream)
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/9775645.html
Copyright © 2011-2022 走看看