odatse_extract_combined#

機能概要#

combined 形式のログファイルから特定の項目を取り出します

書式#

odatse_extract_combined [OPTION]... -t tag [FILE]...

説明#

MCMC の combined 形式のログファイルから tag でタグ付けされた行を取り出します。

combined 形式では、行の先頭に <tag> 形式のタグを付けて複数のデータが格納されています。このファイルから特定の tag のついた行を取り出し、ファイルに出力します。出力ファイルは入力と同じディレクトリ内の tag というファイルになります。

注釈

  • ODAT-SE 本体と同様に Python 3.9 以上が必要です。

  • タグの形式は <tag> の形式で、タグの後にスペースが必要です。

指定可能なコマンドラインオプションを以下に示します。 FILE を指定した場合はそのファイルが対象となります。明示的にファイルを指定しない場合、DATA_DIR/*/combined.txt が対象となります。

FILE

MCMCのログファイル名(combined.txt)を指定します。複数のファイルを指定可能です。

-t TAG, --tag TAG

取り出す項目の tag を指定します。必須パラメータです。タグは文字列型(str)です。

-d DATA_DIR, --data_dir DATA_DIR

データファイルをディレクトリから取得する場合(FILE を指定しない場合)に、ディレクトリを指定します。

--progress

実行時にプログレスバーを表示します。表示には tqdm ライブラリが必要です。tqdmがインストールされていない場合は、代わりに処理中のファイル名が表示されます。

-h, --help

ヘルプメッセージを表示してプログラムを終了します。

使用例#

基本的な使用方法を以下に示します。

# 特定のファイルから「energy」タグのついた行を抽出し、path/to/energy に出力
odatse_extract_combined -t energy path/to/combined.txt

# 特定のディレクトリ内の全combined.txtファイルから「acc」タグの行を抽出
odatse_extract_combined -t acc -d ./mcmc_results/

# プログレスバーを表示しながら複数のファイルを処理
odatse_extract_combined -t energy --progress file1.txt file2.txt file3.txt

補足事項#

実行時の注意点#

  1. タグの完全一致: タグは完全に一致する必要があります。「energy」タグを指定した場合、「<energy>」で始まる行のみが抽出されます。 「<Energy>」や「<energy_value>」などは対象外です。タグの後にはスペースが必要です。

  2. 出力ファイルの上書き: 同名のファイルが既に存在する場合、警告なく上書きされます。重要なファイルがある場合は事前にバックアップを取ることを推奨します。

  3. 大規模ファイルの処理: スクリプトは行単位で処理を行うため、非常に大きなファイルでもメモリ消費は抑えられます。 多数のファイルを処理する場合、 --progress オプションを使用することで進捗状況を確認できます。

  4. ファイル名とパスの扱い: 出力ファイル名は単純に tag になります。タグに不正な文字(ファイル名に使用できない文字)が含まれる場合、ファイル作成時にエラーが発生する可能性があります。

  5. 空のファイル処理: 入力ファイルが空の場合や、指定されたタグが一つも見つからない場合、空のファイルが生成されます。

combined形式のファイル構造#

combined形式のファイルは以下のような構造を持ちます:

<tag1> value1 value2 ...
<tag2> value3 value4 ...
<tag1> value5 value6 ...
...

各行の先頭に <tag> の形式でタグが付けられており、odatse_extract_combined はこのタグを検索して一致する行を抽出します。 タグ部分は出力ファイルからは削除されます。

一般的なワークフロー#

このスクリプトは、MCMCシミュレーションの結果を分析する際に使用します:

  1. export_combined_files オプションを有効にしてMCMCシミュレーションを実行した場合、 combined.txt ファイルが出力されます。

  2. odatse_extract_combined を使用して必要なファイルを抽出します。

  3. 抽出したデータファイルを別のツールで分析・プロットします。

複数のシミュレーション結果を一括処理する場合は、 -d オプションと --progress オプションを組み合わせると効率的です。

MCMCシミュレーションで一般的に使用されるタグの例:

  • trial.txt: モンテカルロ法の trial step のログ

  • result.txt: モンテカルロ法の各ステップのログ

  • weight.txt: PAMC計算でのウェイト値

  • time.txt: 計算時間

エラー処理と出力#

  • 指定したタグが見つからない場合: 空のファイルが生成されます

  • 入力ファイルが読み取れない場合: エラーメッセージが標準エラー出力に表示されます

  • 出力ファイルが書き込めない場合: 権限エラーが標準エラー出力に表示されます

スクリプトは処理の進捗状況を標準出力に表示します。 --progress オプションを指定し、tqdmライブラリがインストールされている場合はプログレスバーが表示されます。それ以外の場合は、処理中のファイル名が表示されます。