欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    如何同时使用Nucleus与TensorFlow解决基因组学领域的机器学习问题.doc

    • 资源ID:3426428       资源大小:21KB        全文页数:5页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    如何同时使用Nucleus与TensorFlow解决基因组学领域的机器学习问题.doc

    如何同时使用Nucleus与TensorFlow解决基因组学领域的机器学习问题简介在本文中,我们将 DNA 测序纠错表述为多级分类问题,并提出两种深度学习解决方案。第一种方法是在单次读取中纠错,而第二种方法(如图 1 所示)则通过多次读取来达成共识,以预测正确的 DNA 序列。我们的 Colab 笔记教程使用 Nucleus 和 TensorFlow 库实现第二种方法。本文旨在向您展示如何同时使用 Nucleus 与 TensorFlow 解决基因组学领域的机器学习问题。问题概览尽管 DNA 测序日渐快捷和便宜,其过程仍容易出错。使用 Illumina 等公司开发的新一代测序 (NGS) 技术处理原始数据时,错误率约为 1%。第三代技术,例如 Pacific BioSciences (PacBio) 公司开发的技术,正日益普及,其错误率约为 15%。测序错误可分为替换、插入和缺失,后两者通常称为 indel。所有这些错误均不利于下游的分析步骤,例如变异检测和基因组组装。如要获取较高质量的数据集,一个简单的方法是舍弃可能包含错误的数据,丢弃全部读取内容或去除低质量区域皆可。该方法并非理想之选,因为这会导致最终的数据集会变小。此外,某些序列上下文本来就有较高的错误率,进而导致采样出现偏差。因此,大量研究都侧重于开发更成熟的纠错方法。大多数已开发的方法均可归类为以下两组之一:对单次读取进行操作的方法,旨在确定正确的读取序列对多次读取进行操作的方法,以共识为基础,旨在确定正确的基础 DNA 序列深度学习概览本文中阐述的两种方法均使用深度神经网络,学习将输入映射至输出的函数。神经网络由若干层线性与非线性运算构成,而这些运算会依次应用至输入。神经网络已成功应用于包括图像分类和自然语言翻译在内的多个问题领域。最近,神经网络也被用于解决基因组学问题,例如蛋白质结构预测和变异检测。方法Nucleus我们的实现需要 Nucleus,这是由 Google Brain 的 Genomics 团队开发的内容库,用于处理基因组学数据。Nucleus 使用专门的 reader 对象与 writer 对象,可轻松读取、写入和分析常见基因组文件格式(如 BAM、FASTA 和 VCF)中的数据。Nucleus 让我们能够:针对指定基因组区域中的所有变异查询 VCF 文件针对映射至指定基因组范围的所有读取内容查询 BAM 文件针对从指定位置开始的参考序列查询 FASTA 文件我们还能使用 Nucleus 将数据写入 TFRecords,这种二进制文件格式由协议缓冲区消息构成,可由 TensorFlow 轻松读取。读取 TFRecords 文件后,我们会使用 Estimator API 训练和评估卷积神经网络。数据以下是我们在实现过程中所使用的文件列表。所有数据均公开提供,且此 教程包含下载链接与说明。NA12878_sliced.bam 从 20 号染色体(位置 10,000,00010,100,000)获得的 Illumina HiSeq 读取内容,降采样至 30x 的覆盖度NA12878_sliced.bam.bai NA12878_sliced.bam 的索引NA12878_calls.vcf.gz 瓶中基因组 NA12878 变异的真值集合NA12878_calls.vcf.gz.tbi NA12878_calls.vcf.gz 的索引hs37d5.fa.gz hs37d5 的参考基因组hs37d5.fa.gz.fai 和 hs37d5.fa.gz.gzi hs37d5.fa.gz 的索引文件注:教程 链接https:/colab.research.google/github/google/nucleus/blob/master/nucleus/examples/dna_sequencing_error_correction.ipynb网络架构卷积神经网络通常用于处理计算机视觉任务,但也非常适用于基因组学。每个卷积层都会反复将学习后的过滤器应用于输入数据。在网络中早期出现的卷积过滤器会学习识别输入数据的低级特征(如图像中的边缘及色彩梯度),而后期出现的过滤器则会学习识别更复杂的低级特征组合。对于 DNA 序列输入,低级卷积过滤器会充当 motif 检测器,这类似于序列标识图的位置权重矩阵。在实现过程中,我们使用的标准卷积架构依次由两个卷积层及三个全连接层组成。我们使用非线性 ReLU 层提升模型的表现能力。当卷积层减少输入量后,我们会进行最大池化,并会在全连接层充当正则化矩阵后退出此过程。请注意,在得到最终的全连接层后,我们不会加入 softmax 层,因为我们使用的损失函数是在内部应用 softmax。如需了解每层的详情,请参阅此 教程。注:教程 链接https:/colab.research.google/github/google/nucleus/blob/master/nucleus/examples/dna_sequencing_error_correction.ipynb方法 1:单次读取的纠错为了纠正序列读取中的错误,我们使用深度学习来训练神经网络,以解决一个较为普遍的问题:填充 DNA 序列中缺失的碱基。此方法旨在开发一种可理解 DNA 序列语法的模型。若仅靠真实序列的语法,我们可能无法获取充足的信息来开发可用于生产环境的解决方案。尽管如此,这依然是一个简单明了的示例应用。出于指导目的,我们通过以下方法简化此问题:仅考虑存在替换错误的区域,并忽略 indel 错误仅考虑未存在已知变异的区域我们可以在参考基因组的区域中训练该神经网络。此网络的输入是定长的 DNA 序列,其核心是我们希望预测的碱基。此网络的输出是可能出现的碱基分布,且最终预测结果为可能性最高的碱基。我们使用在参考基因组中观测到的碱基产生标签集。由于我们仅使用映射至未存在已知真值变异之区域的读取内容,因此可以将参考基因组中存在的碱基明确标记为标签。我们将参考基因组分割成非重叠的定长片段,以产生输入序列。在训练、评估和测试时,我们将参考序列中的一个碱基置零,以模拟缺失的碱基,如图 3 所示(位置 5)。除了使用参考基因组来模拟缺失的数据之外,我们还可将此类模型应用于序列读取的数据,特别是质量评分低于阈值的碱基。方法 2:基于共识的纠错纠错的最终目的是确定基础 DNA 序列,而非为了纠正单次读取的错误。在本部分,我们通过汇总序列堆叠来使用多次读取达成的共识。如此一来,无需纠正单次读取的中间步骤即可直接确定 DNA 序列。有关序列堆叠的示例如下方图 4 所示。请注意,下图仅展示了此窗口中存在的读取部分。出于指导目的,我们再次通过以下方法简化此问题:仅考虑存在替换错误的区域,并忽略 indel 错误仅考虑未存在已知变异的区域与第一种方法不同,我们并未在参考基因组中训练此模型。相反,我们的训练数据来自所映射的 Illumina HiSeq 读取内容。此网络的输入是在所映射的读取内容中观测到的标准化碱基数矩阵,其核心是我们希望预测的正确碱基的位置。Clairvoyante(一种用于变异检测的神经网络)的作者以及 Jason Chin 的示例方法中皆使用了类似的特征化方式。此网络的输出是可能出现的碱基分布,且最终预测结果为可能性最高的碱基。与第一种方法类似,我们使用在参考基因组中观测到的碱基来产生标签集。我们将包含错误(在堆叠中至少有一次读取与中心位置中的参考序列不符)的示例及未包含错误(堆叠中的所有读取均与中心位置中的参考序列相符)的示例结合使用。结论此 随附教程 演示了本文所述的第二种方法。尽管我们分析的示例较为简单,不适合在生产环境中部署,但我们希望它们能帮助开发者学会高效利用 Nucleus 和深度学习解决基因组学领域的问题。

    注意事项

    本文(如何同时使用Nucleus与TensorFlow解决基因组学领域的机器学习问题.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开