首页 > 解决方案 > 拷贝数文件格式问题(需要修改结构)

问题描述

我有一个特殊格式的文件 .cns,这是一个用于分析拷贝数的分段文件。它是一个文本文件,看起来像这样(第一行加上标题):

head -1 copynumber.cns

染色体,开始,结束,基因,log2 chr1,13402,861395,"LOC102725121,DDX11L1,OR4F5,LOC100133331,LOC100132062,LOC100132287,LOC100133331,LINC00115,SAMD11",-0.28067

我们将其转换为 .csv,以便我们可以通过制表符将其分隔(但效果不佳)。.cns 由逗号分隔,但基因是由引号分隔的单个字符串。我希望这很有用。我需要的输出是这样的:

基因日志2

LOC102725121 -0.28067

DDX11L1 -0.28067

OR4F5 -0.28067

PIK3CA 0.35475

NRAS 3.35475

第一步是用逗号分隔所有内容,然后转置列?最后打印包含在由引号分隔的字符串中的每个基因的 de log2 值。如果你能用 R 或 python 脚本帮助我,那会很有帮助。也许 awk 也可以。我正在使用 LInux UBuntu V16.04 我不确定我是否清楚,让我知道这是否有用。谢谢!

标签: pythonrformat

解决方案


希望以下 Python 代码对您有所帮助

import csv

list1 = []
with open('copynumber.cns','r') as file:
    exampleReader = csv.reader(file)
    for row in exampleReader:
        list1.append(row)

for row in list1:
    strings = row[3].split(',')   # Get fourth column in CSV, i.e. gene column, and split on occurrance of comma
    for string in strings:  # Loop through each string
        print(string + ' ' + str(row[4])) 

推荐阅读