大数据难以驾驭?这十一条建议早用早好
需要咨询科研服务?点击上方蓝字关注我们
“Nature Research科研服务” 是自然科研的官方服务号,依托Nature百年积淀, 致力于为中国科研共同体提供全方位的科研服务。
原文作者:Anna Nowogrodzki
大数据难以驾驭,但这些意见和技巧能让你更顺利地完成研究。
科研中的大数据无处不在,越来越大的数据为研究工作带来了一系列挑战。但Tracy Teal认为科研训练中常常缺失了对于数据方面的有效训练。
“这是一种观念,”Teal说,“需要将数据视为一等公民。”她绝对有发言权:不久前Teal刚从The Carpentries公司的执行总监位置上下来,The Carpentries是一家位于加利福利亚奥克兰的公司,专注于为全球范围内的研究人员提供编程和数据技能教育。她说,在科研界存在一种趋势,人们常常不屑于在管理和分享数据上投入时间和精力,也不将它视为科研的重要部分。但她建议:“我们需要转变观念,将数据工作视为研究过程中具有价值的一部分,”而不是事后才考虑。
本文将提供如何有效利用大数据的11条建议。
插图:The Project Twins
珍视你的数据
“保存好你的原始数据:不要在没有备份的时候进行操作。”Teal说。她推荐将数据存储到可以自动备份、并且同事可以访问的地方,同时也要遵守所在单位关于许可和数据隐私的规定。
因为你不需要经常访问这些数据,Teal说:“你可以为访问数据的便利性选择额外付费,但存储的成本的确很低,”例如亚马逊的Glacier服务。你甚至可以将原始数据保存在不同的硬盘进行备份。大数据文件的存储成本会随着大小而增加,因此需要考虑相应的成本。
信息可视化
随着数据集的增长,又会出现新的问题,加州大学戴维斯分校的生物信息学家Titus Brown说:“每个阶段你都会遇到新的令人激动的数据混乱。因此通过大量的做图来寻找异常值是一种有效的解决方法。”刚刚过去的四月里,Brown的一名学生分析了678种海洋微生物的转录组(细胞或生物体产生的全套RNA分子)。当Brown和他的学生想要绘制平均转录长度、覆盖范围和基因含量时,他们发现一些值为零,这说明计算流程中存在失败的地方,需要重新进行计算。
展示工作流程
当粒子物理学家Peter Elmer在帮助11岁的儿子做家庭作业时,他不断地提醒儿子要记录下解题的步骤。Elmer说:“他只想写下答案而不重视过程”。Elmer是普林斯顿大学高能物理软件研究创新中心的执行主管,他认为研究人员在使用大数据时同样需要遵循他给儿子的建议:“记录工作流程与得到结果一样重要。”
这意味着记录完整的数据工作流:包括使用的数据版本,清理和检查步骤以及任何运行过的处理代码。这些信息在用于记录和复现你的方法时是无价之宝。Eric Lyons是亚利桑那大学的计算生物学家,利用视频捕捉工具asciinema来记录命令行输入,但更为普通的工具同样有用。他的同事甚至将屏幕拍下来放到Slack上来记录工作流程。
进行版本控制
版本控制能让研究人员精确地知道文件发生变化的时间及内容,以及谁进行的操作。但一些系统限制了其中文件的大小。哈佛大学的天体物理学家及数据可视化专家Alyssa Goodman表示,开源研究系统Harvard Dataverse和Zenodo可以用于大型文件的版本控制。另一个选择是Dat,这是一个用于共享和控制任何大小文件的对等网络。其位于哥本哈根的核心开发者Andrew Osheroff表示,系统通过维护一个干预验证日志,来记录你在文件上进行的所有操作。位于加州奥克兰的Dat产品经理Karissa McKelvey说,用户可以直接在系统中复制文件的任何版本。Dat团队在今年晚些时候希望发布一款更为友好的用户前端来提升用户体验。
记录元数据
“如果其他人或者未来的你不知道那是什么的话,你的数据将一无是处。”Teal说,这就是元数据存在的意义,它描述了数据如何收集、存储和组织。Lyons建议在开始收集前就详细思考需要记录什么样的元数据,同时将信息与数据一同存储,要么利用软件工具来收集观测数据,要么利用像README一样的描述文件来进行记录。约翰斯·霍普金斯大学的神经统计学家Joshua Vogelstein领导的Open Connectome的项目,就将元数据保存到结构化的JSON文本中。无论你采用什么策略,必须要有长远的眼光。Lyons说,如果有一天你需要将你的数据与其他实验室的数据集成到一起,要是你提前保存了有效的元数据,集成过程将会更加轻松。
自动化、自动化、自动化
手工梳理庞大的数据是不现实的,所以自动化是大数据的关键所在。华盛顿西雅图的艾伦脑科学研究所(Allen Institute for Brain Science)高级数据技术总监Shoaib Mufti举例说,神经信息学团队会使用一个模板来收集脑细胞和基因数据,只能上传格式类型正确的数据。当需要整合到更大的数据库中时,数据质量的保证则使用了Apache Spark和Apache Hbase两个开源工具,来实时验证和修复数据。Mufti说:“我们用于验证和集成数据的全套软件工具都在云端运行,很容易进行规模化拓展”。Vogelstein表示Open Connectom项目同样也提供了自动化质量保障机制,汇总统计信息的可视化使得用户可以在进行下一步工作前对数据进行检验。
评估计算时间
大数据需要高性能计算(high-performance computing,HPC),很多研究机构现在也拥有了自己的HPC基础设施。美国国家科学基金会维护着全国性的HPC网络XSEDE,其中包含了基于云的计算网络Jetstream和遍布全国的超算中心。研究人员可以在xsede.org上申请计算资源,并在go.nature.com/36ufhgh创建试用账户。此外还包括美国的ACI-REF网络,澳大利亚的NCI,欧洲先进计算伙伴成员的ELIXIR网络,同时还有一系列的商用服务,包括亚马逊、谷歌和微软等云服务高性能计算可供选择。
当进行计算时,时间就是金钱。为了充分利用GenomeDK和Denmark上的计算集群时间,哥本哈根大学的基因研究人员Guojie Zhang说他的团队会首先进行小规模的测试验证,随后才会将计算部署到HPC网络上进行运算。Zhang是Vertebrate基因计划的成员,他说,这一计划致力于整合来自约7万种脊椎动物的基因,需要数百万甚至数十亿的计算时来完成。
捕捉你的运行环境
为了在未来重复分析,你不仅需要保存相同版本的工具,还需要相同的操作系统、软件库等。来自多伦多玛格丽特公主癌症中心的计算药物基因组学家Benjamin Haibe-Kains说,他推荐研究人员使用独立的计算环境——Docker容器——来保存所有的操作系统环境并随时可复现。Haibe-Kains及其团队使用了基于Docker的在线平台Code Ocean来记录并保存每次使用的虚拟环境。此外还包括Binder、Gigantum和Nextjournal等工具。使用这些工具你甚至可以在十年后精确地复现相同的流程。
避免下载数据
下载并存储大数据是不现实的,Brown说研究人员必须远程接入并分析数据。很多大数据项目使用了Jupyter Notebook,通过创建集成了代码、文本和图标的文件来更有效的开展研究,它适合于那些不习惯使用命令行的研究人员。此外还有像Terra和Seven Bridges Genomics这样更友好的用户平台帮助人们进行大数据分析。
尽早开始数据工作
即使对于青年研究者来说数据管理也十分关键,所以尽早开始相关训练十分必要。Elmer说“人们总是觉得没有时间去投资,但长期看来是磨刀不误砍柴工”。从命令行基础开始,学习python或者R语言,对于你的领域至关重要。Lyons也认为:“第一步需要熟悉用命令行操作数据,拥有一些基础的命令行及编程技能可以更快地更正染色体的名称。”去年十一月他的一些同事因为不熟悉命令行工具,在处理染色体数据与文件不匹配时遇到了很多麻烦。
寻求帮助
无论线上或者线下,寻求帮助都是有价值的。Teal建议可以从线上论坛Stack Overflow开始,也可以咨询单位的图书馆获取相关技能和资料信息。Lyons认为现场培训也十分重要,The Carpentries就是开始学习数据管理的好地方。
原文以Eleven tips for working with large data sets为标题发表在2020年1月13日Nature的Technology Feature版块
©Nature
点击“阅读原文”查看英文原文
更多阅读
| ||
| ||
|
版权声明:
本文由施普林格·自然上海办公室负责翻译。中文内容仅供参考,一切内容以英文原版为准。欢迎转发至朋友圈,如需转载,请邮件China@nature.com。未经授权的翻译是侵权行为,版权方将保留追究法律责任的权利。
© 2020 Springer Nature Limited. All Rights Reserved
喜欢就转发或点个“在看”吧⇣⇣