Skip to content

An R utility function to convert wide-format CSV files with multi-row headers (e.g. POD and experimental conditions) into a tidy, analysis-ready data frame.

Notifications You must be signed in to change notification settings

Satyosh/multi_header_csv_to_tidy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

この関数について(概要)

read_pod_csv() は、 2段ヘッダ構造を持つ CSV ファイル(POD × 条件)を解析用の tidy-ish な long 形式に変換する関数である。

本関数は、Excel 等で作成された「人間には見やすいが解析には不向きな表形式データ」を、 後段の統計解析・可視化・モデリングに耐える形に正規化することを目的としている。

入力データの前提構造

本関数は、入力 CSV が以下の構造を持つことを前提とする。

  • 1行目:POD(例:POD0, POD4, POD7, …)
  • 2行目:条件(例:CONTROL, CELL, HD, Cell+HD, …)
  • 1列目:サンプル ID
  • 3行目以降:測定値
  • 1ファイル=1遺伝子

このような 2 段ヘッダ構造は、Excel では自然だが CSV / tidy データとしては扱いづらいため、 本関数ではヘッダ行を 列メタデータとして分離 し、long 形式に変換する。

処理内容の概要

関数内部では、以下の処理を行っている。

  1. CSV をヘッダなしで読み込む
  2. 1行目から POD 情報、2行目から条件情報を抽出
  3. 実データ部分のみを数値として整形
  4. pivot_longer() により縦持ちデータに変換
  5. 列順を用いて POD / 条件を安全に対応付け
  6. 引数で与えられた遺伝子名(gene)を列として付与

この設計により、 列名や Excel 特有の挙動に依存しない、再現性の高い変換が可能になっている。

出力データの構造

出力は以下のカラムを持つデータフレームである。

  • gene:遺伝子名(引数で指定)
  • sample:サンプル ID
  • POD:POD(時点)
  • condition:実験条件
  • value:測定値

この形式は、dplyr / ggplot2 / 線形モデル / 混合効果モデルなどで そのまま利用可能な構造になっている。

設計上の注意点

  • POD と条件を列名に結合せず、独立したカラムとして保持している → 後段の集計・モデリングが容易
  • Excel 形式は入力時のみ使用し、 正規化後は CSV を正本(source of truth)とする設計を想定
  • 列番号のオフセットずれを避けるため、 列順そのものを用いた対応付けを行っている

想定される利用シーン

  • 遺伝子ごとの時系列 × 条件比較
  • 複数遺伝子 CSV を統合した解析
  • 再現性を重視した解析パイプライン(targets / drake 等)

About

An R utility function to convert wide-format CSV files with multi-row headers (e.g. POD and experimental conditions) into a tidy, analysis-ready data frame.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages