复印号码文件格式问题

时间:2018-06-26 15:39:53

标签: python r format

我有一个来自副本编号数据的.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脚本方面为我提供帮助,我将不胜感激,但是,到目前为止,任何解决方案都将很好。

2 个答案:

答案 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)