首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据示例代码将第三列中的不同术语组合为一行

根据示例代码将第三列中的不同术语组合为一行
EN

Unix & Linux用户
提问于 2021-06-25 04:00:53
回答 1查看 136关注 0票数 -1

我有三列的基因组数据。第一栏是样本,第二栏是癌症类型,第三栏是机制。每个样本在第三行有一个或多个分配给它的基因机制(例如6 ecDNA)。目前,对于每个样本,每个机制有多行(例如,样本x有4行带有"6 ecDNA“机制的5行和"5删除”机制,其中每一行对应于为该样本发现的一种遗传畸变)。

我想知道是否有一种方法可以为一行中的每个示例显示数据中的所有类型的机制。

(例如样本癌症缩写机制)

代码语言:javascript
运行
复制
     x        Bladder     6 ecDNA, 5 deletion

是否有方法将样本的机制类型压缩为一行?编辑:这是OG数据集的一个有代表性的表,示例示例为"x“和"y”。

样本,癌症缩写,机制

代码语言:javascript
运行
复制
 x,       Bladder,         6 ecDNA

 x,       Bladder,         6 ecDNA

 x,       Bladder,         5 deletion

 x,       Bladder,         5 deletion

 y,       Osteosarcoma,    4 transposition

 y,       Osteosarcoma,    4 transposition

y,       Osteosarcoma,    5 deletion

y,       Osteosarcoma,    6 ecDNA

……

EN

回答 1

Unix & Linux用户

发布于 2021-06-26 14:33:22

使用米勒,如果输入是CSV,则可以运行

代码语言:javascript
运行
复制
mlr --c2t -N nest --implode --values --across-records --nested-fs "," -f 3 then clean-whitespace input.csv

为了拥有

代码语言:javascript
运行
复制
x Bladder      6 ecDNA,6 ecDNA,5 deletion,5 deletion
y Osteosarcoma 4 transposition,4 transposition,5 deletion,6 ecDNA

我使用的输入文件

代码语言:javascript
运行
复制
x,Bladder,6 ecDNA
x,Bladder,6 ecDNA
x,Bladder,5 deletion
x,Bladder,5 deletion
y,Osteosarcoma,4 transposition
y,Osteosarcoma,4 transposition
y,Osteosarcoma,5 deletion
y,Osteosarcoma,6 ecDNA

如果您想要唯一的值,命令是

代码语言:javascript
运行
复制
mlr --c2p -N uniq -a then  nest --implode --values --across-records --nested-fs "," -f 3 then clea
n-whitespace input.csv
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/655755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档