LinuxでKeggマッパー出力を再フォーマットするには?

LinuxでKeggマッパー出力を再フォーマットするには?

kegg reconstruct pathway出力を再フォーマットする必要があります。 file1 には次の内容があります。

00550 Peptidoglycan biosynthesis (2)

K01000

K02563

00511 Other glycan degradation (8) K01190   K01191

K01192

K01201

K01227

K12309

file2には次のものが必要です。

00550 Peptidoglycan biosynthesis (2)   K01000   K02563
00511 Other glycan degradation (6)   K01190   K01191   K01192   K01201   K01227   K12309

LinuxまたはPythonでどのように再フォーマットするのですか?

ありがとう

ベストアンサー1

これはあなたにどれだけ役立つでしょうか?

awk '
!NF             {next                                                   # don"t process empty lines
                }
/^[0-9]+ /      {sub (/\([0-9]*\)/, "(" CNT ")", PRT)                   # for the "glycan" lines (leading numerical)
                                                                        # correct the count in parentheses
                 if (PRT) print PRT                                     # print the PRT buffer (NOT first line when empty)
                 PRT = ""                                               # empty it after print
                 CNT = gsub (/K[0-9]*/, "&") - 1                        # get this line"s "K..." count, corr.for later incr.
                }
                {PRT = sprintf ("%s%s%s", PRT, PRT?" ":"", $0)          # append this line to buffer
                 CNT++                                                  # increment "K..." count
                }
END             {sub (/\([0-9]*\)/, "(" CNT ")", PRT)                   # see above
                 print PRT
                }
' file
00550 Peptidoglycan biosynthesis (2) K01000 K02563
00511 Other glycan degradation (6) K01190   K01191 K01192 K01201 K01227 K12309

おすすめ記事