下記のEMAN2付属のe2proc2d.pyはシーケンシャルに処理される。
多数のファイルを一度に変換したい場合、GNU parallelと併用して4coreマシンなら4つ同時並行に変換してくれる
方法としては、入力ファイルをlsで表記して、それをパイプ(|)で繋ぎます
(--dry-runで確認)
ls sq03_ps0_10000?.mrc | parallel --dry-run e2proc2d.py {} {.}.jpeg --meanshrink=4 --fixintscaling=sane --writejunk
ls sq03_ps0_10000?.mrc | parallel e2proc2d.py {} {.}.jpeg --meanshrink=4 --fixintscaling=sane --writejunk
* 「{}」はパイプ経由で渡される値。
* 「{.}」はパイプ経由で渡された値で拡張子を除いたもの
な感じで。
もし作った変換ファイルを別のディレクトリに置きたいのなら
ls sq03_ps0_10000?.mrc | parallel e2proc2d.py {} jpeg/{.}.jpeg --meanshrink=4 --fixintscaling=sane --writejunk
とかとする。
もし対象となるファイルにディレクトリ名を含めて処理したいのなら
ls e2proc2d/sq03_ps0_10000?.mrc | parallel --dry-run e2proc2d.py {} e2proc2d/jpeg/{/.}.jpeg --meanshrink=4 --fixintscaling=sane --writejunk
* 「{/.}」はパイプ経由で渡される値で拡張子とディレクトリが除かれる
とかとする。
EMAN2に付属しているe2proc2d.pyにて変換可能っぽい
[foo@c ~]$ time e2proc2d.py Falcon_2016_05_12-20_26_42.mrc Falcon_2016_05_12-20_26_42.tiff
1 images, processing 0-0 stepping by 1
1 images
real 0m0.567s
user 0m0.182s
sys 0m0.384s
[foo@c ~]$
[foo@c ~]$ time e2proc2d.py Falcon_2016_05_12-20_26_42.mrc Falcon_2016_05_12-20_26_42.jpeg
1 images, processing 0-0 stepping by 1
real 0m0.753s
user 0m0.535s
sys 0m0.217s
[foo@c ~]$
[foo@c ~]$ time e2proc2d.py Falcon_2016_05_12-20_26_42.mrc Falcon_2016_05_12-20_26_42.png
1 images, processing 0-0 stepping by 1
1 images
real 0m4.861s
user 0m4.747s
sys 0m0.106s
[foo@c ~]$
電顕から得られたTIFFデータに対してサイズ調整が必要になった
画像ファイルの縮小ではなく、切り取り作業である
TIFFファイルのジオメトリは identify コマンドで確認可能で、ここでのTIFFファイルはmulti-pageなTIFFファイルで
それぞれのジオメトリが表示される
[foo@c run]$ identify Jun28_18.26.55.conv1.tif
Jun28_18.26.55.tif[0] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
Jun28_18.26.55.tif[1] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
Jun28_18.26.55.tif[2] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
Jun28_18.26.55.tif[3] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
(中略)
Jun28_18.26.55.tif[37] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
Jun28_18.26.55.tif[38] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
Jun28_18.26.55.tif[39] TIFF 7424x7680 7424x7680+0+0 8-bit Grayscale DirectClass 550.3MB 0.000u 0:00.000
[foo@c run]$
もっと詳しくは identify -verbose で確認できる。
ここでは 7424x7680 のサイズである。このサイズを(0,0)から7420x7674分切り出すには convert -crop で可能みたい
[foo@c tiff]$ convert -crop 7420x7676+0+0 Jun28_18.26.55.tif Jun28_18.26.55.conv1.tif
っで切りだしたJun28_18.26.55.conv1.tifのサイズを確認すると
[foo@c run]$ identify Jun28_18.26.55.conv1.tif
Jun28_18.26.55.conv1.tif[0] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.009
Jun28_18.26.55.conv1.tif[1] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.009
Jun28_18.26.55.conv1.tif[2] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.009
Jun28_18.26.55.conv1.tif[3] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.009
(中略)
Jun28_18.26.55.conv1.tif[36] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.000
Jun28_18.26.55.conv1.tif[37] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.000
Jun28_18.26.55.conv1.tif[38] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.000
Jun28_18.26.55.conv1.tif[39] TIFF 7420x7676 7420x7676+0+0 8-bit Grayscale DirectClass 675.6MB 0.000u 0:00.000
[foo@c run]$
となる。切り出したのにサイズが大きくなるのは?なのだが、とりあえずOK
参照先:https://www.jstage.jst.go.jp/article/itej/61/12/61_12_1725/_pdf