次のようなデータファイル(タブ区切り)があります。
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_+
どこ:
- 最初の3列は座標と
- 最後の列には、0個以上の注釈レコードのセットが含まれています
- 各注釈レコードはコンマで区切られます
- 注釈レコード内のフィールドは、アンダースコアまたはコロンで区切られます
私が欲しいのは、最初の3つの列をそのまま取得し、各注釈レコードから5番目のフィールドを取得することです。たとえば、行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で目的の出力を取得するようにガイドしてください。