• pacbio 原始下机数据h5 文件简介


    pacbio 采用hdf5文件格式保存原始的下机数据,对于RS 测序系统而言,会产生一个 bas.h5 的文件;

    以bas.h5 文件为例,看一下有下机数据中保存了那些信息

    h5dump 工具可以用来查看h5 文件的内容:

    我从HGAP的wiki 页面下载了一个测试用的h5文件,文件名为 m120729_040044_42134_c100384402550000001523033010171256_s1_p0.bas.h5

    运行下面命令:

    h5dump -n  m120729_040044_42134_c100384402550000001523033010171256_s1_p0.bas.h5

    可以看到这个文件中所有的group和dataset, 由于结果太多,只展示最上层的两个group;

    group      /
    group      /PulseData
    group      /ScanData

    通过这个命令的运行结果,可以发现,这个h5文件中有两个大的group : PulseData 和 ScanData

    其中ScanData 存储的是和仪器相关的一些设备信息,就不详细看了,重点看下PulseData group 下的信息;

    group      /PulseData
    group      /PulseData/BaseCalls
    group      /PulseData/ConsensusBaseCalls

    在 PluseData group 下面又有两个subgroup, BaseCalls 和 ConsensusBaseCalls ;

    其中BaseCalls 存放的是原始的碱基calling的结果,而ConsensusBaseCalls 存放的是环形一致性序列(ccs)的碱基calling的结果,

    在这两个group下有一个相同名称的数据集 Basecall, 存放的就是碱基序列的信息

    dataset    /PulseData/BaseCalls/Basecall
    dataset    /PulseData/ConsensusBaseCalls/Basecall

    使用如下命令,查看该数据集的内容:

    h5dump -d /PulseData/ConsensusBaseCalls/Basecall  m120729_040044_42134_c100384402550000001523033010171256_s1_p0.bas.h5 > Basecall.info

    由于文件内容太多,重定向到一个文件中;-d 参数指定你想要查看的数据集的名称

    通过BaseCall.info 文件中的内容可以看到,如下的信息

    DATA {
       (0): 67, 71, 67, 67, 65, 71, 67, 71, 65, 65, 84, 71, 71, 67, 84, 71, 67,
       (17): 71, 71, 71, 71, 65, 65, 71, 67, 65, 71, 65, 65, 65, 84, 84, 65, 84,
       (34): 67, 67, 71, 84, 65, 65, 65, 67, 84, 71, 84, 84, 71, 67, 84, 71, 67,
       (51): 67, 71, 65, 65, 65, 84, 71, 67, 67, 65, 71, 67, 71, 65, 84, 71, 67,
       (68): 65, 71, 84, 71, 84, 67, 84, 71, 67, 65, 65, 67, 84, 71, 71, 67, 65,

    这里的DATA 就是测序得到的碱基序列,只不过采用了ASCII 编码,A=> 65, C=> 67, G=>71, T=>84;

    只有碱基序列还不够,我们还需要碱基质量的信息,对应的dataset的名称为 QualityValue

    dataset    /PulseData/BaseCalls/QualityValue
    dataset    /PulseData/ConsensusBaseCalls/QualityValue

    同样的方式查看碱基质量的数据:

    h5dump -d /PulseData/ConsensusBaseCalls/QualityValue  m120729_040044_42134_c100384402550000001523033010171256_s1_p0.bas.h5 > Basecall.quality

    通过BaseCall.quality 文件中的内容可以看到,如下的信息

    DATA {
       (0): 51, 44, 42, 44, 24, 24, 51, 51, 51, 51, 50, 20, 20, 20, 50, 51, 51,
       (17): 48, 48, 48, 47, 9, 9, 9, 51, 51, 46, 31, 31, 31, 31, 44, 51, 51, 30,
       (35): 30, 51, 51, 7, 7, 7, 7, 51, 51, 44, 44, 44, 51, 51, 50, 27, 27, 26,
       (53): 27, 27, 27, 27, 51, 36, 36, 30, 30, 51, 51, 49, 49, 51, 51, 51, 51,
       (70): 51, 51, 51, 51, 51, 51, 49, 44, 31, 51, 51, 20, 20, 34, 48, 48, 31,
       (87): 30, 34, 36, 23, 23, 51, 26, 26, 49, 50, 45, 45, 50, 44, 41, 43, 50,
       (104): 50, 51, 37, 37, 50, 51, 25, 25, 44, 51, 51, 51, 37, 37, 37, 37, 51,

    这里的DATA就是碱基质量值,pacbio的碱基质量值和illumina的碱基质量值一样的。

    参考链接:http://files.pacb.com/software/instrument/2.0.0/bas.h5%20Reference%20Guide.pdf

  • 相关阅读:
    Android笔记(六十六) android中的动画——XML文件定义属性动画
    Android笔记(六十五) android中的动画——属性动画(propertyanimation)
    python函数参数默认值及重要警告
    Python 列表
    Python数学运算入门把Python当作计算器
    Python 的非正式介绍
    python中为什么 if/while/def/class语句需要冒号?
    为什么Python在列表和元组的末尾允许使用逗号?
    现实世界中的 Python
    Python常见问题
  • 原文地址:https://www.cnblogs.com/xudongliang/p/6908953.html
Copyright © 2020-2023  润新知