我有一个来自副本编号数据的.csv
文件的问题。原始的样子是这样的:
genes Log2
PIK3CA,TET2 -0.35
MLH2,NRAS 0.54
而且,我需要的是:
genes Log2
PIK3CA -0.35
TET2 -0.35
MLH2 0.54
NRAS 0.54
到目前为止,我已经尝试了很多方法,但都没有成功。该文件是使用CNVkit从胃癌样本创建的。该文件更大,基因列表更长,但这本质上是我需要执行的工作,以便分析我们的cnv数据。
我已经尝试过了:
awk -F , -v OFS='\t' 'NR == 1 || $0 > 0 {print $4}' copynumber.csv | less
我最近的那个。
我使用Linux,Ubuntu 16.04。如果可以在R或Python脚本方面为我提供帮助,我将不胜感激,但是,到目前为止,任何解决方案都将很好。
答案 0 :(得分:1)
如果您使用的是R,我们可以使用separate_rows
软件包中的tidyr
。
library(tidyr)
dat2 <- dat %>% separate_rows(genes)
dat2
# genes Log2
# 1 PIK3CA -0.35
# 2 TET2 -0.35
# 3 MLH2 0.54
# 4 NRAS 0.54
数据
dat <- read.table(text = "genes Log2
PIK3CA,TET2 -0.35
MLH2,NRAS 0.54",
header = TRUE, stringsAsFactors = FALSE)
答案 1 :(得分:0)
使用python可以轻松实现。
您可以先用空格分隔一条线,然后再用
遍历多个逗号分隔的字段。
filename = 'copynumber.csv'
with open(filename, 'r') as fp:
header = fp.readline()
print(header)
for line in fp:
keys, value = line.split()
for key in keys.split(','):
print(key + " " + value)