生信编程直播第12题:json格式数据的格式化

json数据大家统一用我给的测试数据,自己在浏览器打开下载:http://biotrainee.com/jbrowse/JBrowse-1.12.1/sample_data/json/modencode/modencodeMetaData.json范例如下:[AppleScript] 纯文本查看 复制代码?01020304050607080910111213141516171819202122232425262728293031323334353637{"types" : {"data set" : {"pluralLabel" : "data sets"}},"items" : [{"technique" : "ChIP-chip","factor" : "BEAF-32","target" : "Non TF Chromatin binding factor","principal_investigator" : "White, K.","Tracks" : ["fly/White_INSULATORS_WIG/BEAF32"],"submission" : "21","label" : "BEAF-32;Embryos 0-12 hr;ChIP-chip","category" : "Other chromatin binding sites","type" : "data set","Developmental-Stage" : "Embryos 0-12 hr","organism" : "D. melanogaster"},{"technique" : "ChIP-chip","factor" : "CP190","target" : "Non TF Chromatin binding factor","principal_investigator" : "White, K.","Tracks" : ["fly/White_INSULATORS_WIG/CP190"],"submission" : "22","label" : "CP190;Embryos 0-12 hr;ChIP-chip","category" : "Other chromatin binding sites","type" : "data set","Developmental-Stage" : "Embryos 0-12 hr","organism" : "D. melanogaster"},因为帖子长度有限,我就只截取了一部分,请自己下载查看,如果是完整的json,可以用在线工具查看结构:http://json.parser.online.fr/如果不懂json格式的,请自行搜索哈,现在TCGA在GDC的metadata信息,就是json格式的。我们需要从这个json文件里面提取:technique factor target principal_investigator submission label category type Developmental-Stage organism key  这几列信息,当然,是可以用正则表达式做的。完成之后应该是:http://biotrainee.com/jbrowse/JBrowse-1.12.1/sample_data/json/modencode/modencodeMetaData.csv 同样可以在浏览器打开并且下载用excel查看哈

我就不多做介绍了,主要难点在于理解json,本次作业,推荐大家用已有的包,正则表达式虽然可以做,但是太麻烦了~给一个perl代码如下;[Perl] 纯文本查看 复制代码?01020304050607080910111213141516171819202122#!/usr/bin/env perluse strict;use warnings;use autodie ':all';use 5.10.0;use JSON 2;my $data = from_json( do { local $/; open my $f, '<', $ARGV[0]; scalar <$f> } );my @fields = qw( technique factor target principal_investigator submission label category type Developmental-Stage organism key );say join ',', map "\"$_\"", @fields;for my $item ( @{$data->{items}} ) {$item->{key} = $item->{label};no warnings 'uninitialized';for my $track ( @{$item->{Tracks}} ) {$item->{label} = $track;say join ',', map "\"$_\"", @{$item}{@fields};}}希望有同学可以推陈出新,不要局限于我们的作业。可以自己下载TCGA的metadata信息,自己尝试提取,格式化。

(0)

相关推荐

  • 生信编程直播第七题:写超几何分布检验!

    下载数据 切换到工作目录:cd d/生信技能树-视频直播/第七讲 kegg2gene(第六讲kegg数据解析结果) 暂时不用新的kegg注释数据为了能够统一答案 差异基因list和背景基因list 关 ...

  • 生信编程直播第0题-生信编程很简单!

    貌似顺序有点怪异,我们都把1~8题给讲解完了,现在才开始第0题,很明显,这个是临时加入的,因为有很多没有编程基础的朋友也开始跟着我们学习了. 还不知道怎么回事的先查看历史题目: 生物信息学技能面试题( ...

  • 生信编程直播第9题-根据指定染色体及坐标得到参考碱基

    还不知道怎么回事的先查看历史题目: 生信编程直播第0题-生信编程很简单! 生物信息学技能面试题(第1题)-人类基因组的外显子区域到底有多长 生物信息学技能面试题(第2题)-探索人类基因组序列 生物信息 ...

  • 生信编程直播第11题:把文件内容按照染色体分开写出

    问题描述这个需求很常见,因为一般生物信息学数据比较大,比如sam,vcf,或者gtf,bed都是把所有染色体综合在一起的文件.如果想根据染色体把大文件拆分成小的文件呢?比如:ftp://ftp.ncb ...

  • 生信编程直播课程优秀学员作业展示1

    题目 人类基因组外显子区域长度 学员:x2yline 具体题目详情请参考生信技能树论坛 题目数据来源为:ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/current_huma ...

  • 生信编程直播课程优秀学员学习心得及作业展示3

    学习感悟 首先说明一下,我不算是完全从0开始学习,因为生物的知识和python的语言之前都知道一点,但说实话,我的python距离真正的实践还差的很远,也没有常用所以基本忘完. 真的很感谢群主和老师们 ...

  • 生信编程直播课程优秀学员作业展示2

    题目:hg19基因组序列的一些探究 学员:x2yline 具体题目详情请参考生信技能树论坛 数据来源:http://hgdownload.cse.ucsc.edu/goldenPath/hg19/bi ...

  • 生信编程系列(1-2)

    有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物.最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的. ...

  • 7.JSON格式数据的格式化

    有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物.最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的. ...