【发布时间】:2017-10-08 14:20:12
【问题描述】:
我有一个 CSV 文件,我想使用 jq 解析并获得一个嵌套 JSON。我最近开始使用 JQ,我真的很喜欢这个工具。我了解基本功能,但解析 csv 文件似乎有点困难,尤其是打印嵌套对象。
示例输入
基因、外显子、总碱基、外显子碱基、总碱基、外显子碱基分数 PIK3CA,PIK3CA_Exon10;chr1;1000;1500,PIK3CA_Exon13;chr1;1000;1500,PIK3CA_Exon14;chr1;1000;1500,1927879,12993042,0.15 NRAS,NRAS_Exon4;chr1;1000;1500,NRAS_Amp_369;chr1;1000;1500,NRAS_Amp_371;chr1;1000;1500,NRAS_Amp_374;chr1;1000;1500,NRAS_Amp_379;chr1;1000;1500,880.4111,1500,880.4111, >
表头及输入数据说明
第一列总是有一个值。第二列可以有多个外显子(1 个或多个)。您可以看到它在第 2 行有 3 个值,在第 3 行有 5 个值。外显子碱基总是排在倒数第二列,总碱基排在最后一列,外显子碱基分数排在最后一列。
注意
我已添加标题用于解释目的,可以删除或修改以进行处理
预期输出
{
"Exome regions":[
{
"metric":"PIK3CA",
"value":[
{
"metric":"Exons",
"value":[
"PIK3CA_Exon10",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"PIK3CA_Exon13",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"PIK3CA_Exon14",
{
"chromosome":"chr1",
"start":1000,
"end":1500
}
],
"type":"set"
},
{
"metric":"Fraction of bases",
"value":0.15,
"type":"simple"
},
{
"metric":"Total_bases",
"value":1927879,
"type":"simple"
}
],
"type":"set"
},
{
"metric":"NRAS",
"value":[
{
"metric":"Exons",
"value":[
"NRAS_Exon4",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"NRAS_Amp_369",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"NRAS_Amp_371",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"NRAS_Amp_374",
{
"chromosome":"chr1",
"start":1000,
"end":1500
},
"NRAS_Amp_379",
{
"chromosome":"chr1",
"start":1000,
"end":1500
}
],
"type":"set"
},
{
"metric":"Fraction of bases",
"value":0.11,
"type":"simple"
},
{
"metric":"Total_bases",
"value":884111,
"type":"simple"
}
],
"type":"set"
}
]
}
提前感谢您的帮助!
PS: - 我需要添加更多信息,我必须编辑外显子字段并为每个外显子添加“染色体”、“开始”和“结束”。在这里,我给出了相同的开始和结束,但在实际情况下,每个外显子都不同。你能帮我解决这个问题吗? 此外,这些外显子的输入也可以用任何其他字符分隔。现在我用“;”分隔它
【问题讨论】:
-
我需要更多帮助,是否可以拆分外显子并创建键值对。 PIK3CA,PIK3CA_Exon10;chr;2;100,PIK3CA_Exon13;chr;100;200,PIK3CA_Exon14;chr;2000;10000,1927879,12993042,0.15 Keys are Chromosome, Start and End, 值在外显子中,用“;”分隔
标签: json bioinformatics hierarchical-data jq