我有一个数据文件(制表符分隔),如下所示:
chr1 38045559 38046059 chr1:38045559-38046559_NM_001142726_C1orf122_+,chr1:38045559-38046559_NM_198446_C1orf122_+,chr1:38045952-38046952_NM_024640_YRDC_-
chr1 205291045 205291545 chr1:205290545-205291545_NM_018566_YOD1_-
chr1 1499717 1500625 chr1:1499625-1500625_NM_014188_SSU72_-
chr1 1679941 1680441 chr1:1679441-1680441_NM_001198995_NADK_-
chr1 1699769 1700657 chr1:1699269-1700269_NM_023018_NADK_-,chr1:1699657-1700657_NM_001198993_NADK_-
chr1 1701368 1701868 chr1:1700868-1701868_NM_001198994_NADK_-
chr1 1812386 1812886 chr1:1811886-1812886_NM_002074_GNB1_-
chr1 2066155 2066655
chr1 2149493 2149993 chr1:2149493-2150493_NM_003036_SKI_+
chr1 2312573 2313353 chr1:2312353-2313353_NM_024848_MORN1_-,chr1:2312573-2313573_NM_007033_RER1_+
在哪里:
- 前三列是坐标和
- 最后一列包含一组零个或多个注释记录
- 每个注释记录由逗号分隔
- 注释记录中的字段由下划线或冒号分隔
我想要的是从每个注释记录中获取前三列和第五个字段。例如对于第 1 行,输出应该是这样的
chr1 38045559 38046059 C1orf122
C1orf122
YRDC
我所做的是,我已经根据逗号“,”分割了最后一列中的数据
使用tr ',' '\t' <input>temp1
现在我拥有的是一个看起来像这样的文件
chr1 38045559 38046059 chr1:38045559-38046559_NM_001142726_C1orf122_+ chr1:38045559-38046559_NM_198446_C1orf122_+ chr1:38045952-38046952_NM_024640_YRDC_-
chr1 205291045 205291545 chr1:205290545-205291545_NM_018566_YOD1_-
chr1 1499717 1500625 chr1:1499625-1500625_NM_014188_SSU72_-
chr1 1679941 1680441 chr1:1679441-1680441_NM_001198995_NADK_-
chr1 1699769 1700657 chr1:1699269-1700269_NM_023018_NADK_- chr1:1699657-1700657_NM_001198993_NADK_-
chr1 1701368 1701868 chr1:1700868-1701868_NM_001198994_NADK_-
chr1 1812386 1812886 chr1:1811886-1812886_NM_002074_GNB1_-
chr1 2066155 2066655
chr1 2149493 2149993 chr1:2149493-2150493_NM_003036_SKI_+
chr1 2312573 2313353 chr1:2312353-2313353_NM_024848_MORN1_- chr1:2312573-2313573_NM_007033_RER1_+
现在,我需要您的一些专业知识来让我获得所需的输出格式。
请指导我在 python/perl/shell 中获得所需的输出。