我有一个特殊格式的.cns文件,它是用于分析副本数的分段文件。这是一个文本文件,看起来像这样(第一行加上标题):
head -1 copynumber.cns
染色体,开始,结束,基因,log2 chr1,13402,861395,“ LOC102725121,DDX11L1,OR4F5,LOC100133331,LOC100132062,LOC100132287,LOC100133331,LINC00115,SAMD11”,-0.28067
我们将其转换为.csv,因此可以通过制表符将其分开(但效果不佳)。 .cns以逗号分隔,但基因是由引号分隔的单个字符串。我希望这是有用的。我需要的输出是这样的:
基因log2
LOC102725121 -0.28067
DDX11L1 -0.28067
OR4F5 -0.28067
PIK3CA 0.35475
NRAS 3.35475
第一个步骤是用逗号分隔所有内容,然后转置列?最后为该字符串中包含的每个用引号引起来的基因打印de log2值。如果您可以用R或python脚本帮助我,那将会有很大帮助。也许awk也可以。 我正在使用LInux UBuntu V16.04 我不确定自己是否很清楚,请告诉我这是否有用。 谢谢!
答案 0 :(得分:1)
希望以下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]))