構造

中心極限定理と安定分布

初等的な中心極限定理 CLT の説明では、i.i.d な(=共通の母分布から独立にサンプルした)確率変数の和について述べているが、条件を緩めて i.i.d を外すことができる。これがLyapunov 型 CLTである。構造因子の和が二次元正規分布になることを示すのに使うの…

畳み込みの定理による回折像の理解

単位胞の Fraunhofer 回折像は、フーリエ変換である。単位胞そのものは周期性を持たないので、フーリエ変換は連続である。空間に無限に広がる理想結晶は、単位胞とパルス列の畳み込みで表される。その回折像は、単位胞のフーリエ変換と、パルス列のフーリエ…

DIALS で積分してみる

2016/05/04: 本記事は歴史的な意味で残してある。現在では、チュートリアル の通りに操作すれば処理できるし、SPring-8 の reverse phi も自動で認識される。DIALS の積分が、ついに SPring-8 BL41-XU のデータセットで完走できたのでメモ。 データブロック…

CrystFEL の stream を cctbx.xfel 用の pickle ファイルに変換する (未完成)

CrystFEL で指数付け・積分して得られた反射強度を、cctbx.xfel に含まれる cxi.postrefine でスケールしてみようとした。CrystFEL 付属の partialator がまだ experimental な段階であり、ほとんどのフレームで最適化が発散してしまうためだ。その理由は、…

cxi.postrefine の使い方 (試行錯誤中)

cctbx.xfel に含まれる cxi.postrefine の使い方のメモ。たぶん世界初。 Indexing individual stills - cctbx_xfel が参考になる。インストール方法も、この wiki を参照のこと。 画像の変換 まず、画像を pickle 形式に変換する。 cxi.image2pickle *.img …

P3 の演算子の表現が整数になるわけ

空間群 P3 における 120度回転の演算子が (-y, x - y) であるのが不思議であるという話を聞いた。私も同じことを昔思っていたが、別にどうということはない。分数座標で考えるからそうなるのである。 120 度の回転は、複素数で考えると となり、明らかにルー…

分子動力学法

注意: 勉強中につき間違いがあったら教えてください。分子動力学法 molecular dynamic は、なんとなく分子がうにょうにょ動くのを見て楽しんだり、「シミュレーション中に A から B へ状態が遷移しました」と定性的に述べるだけが能ではない。はたして、何を…

cctbx で対称操作を列挙する

cctbx で直交座標系での対称操作を列挙する方法を訊かれて書いたコード。 from scitbx import matrix from cctbx import crystal # example is 4BWY symm = crystal.symmetry((197.725, 197.725, 562.576, 90, 90, 120), space_group="H32") uc = symm.unit_…

実空間と逆空間の対称性について

教科書的な内容だが、TeX 形式の式があったほうが何かと便利なのでまとめた。誤植指摘希望。 逆空間の対称性 ある空間群を考え、そこに N 個の元、すなわち対称操作 があるとする。以下では、便宜のため、(単位元)としよう。すると、単位胞 unit cell のうち…

SACLA の利用課題実験報告書まとめ

日本の XFEL 実験施設 SACLA でどんな実験が行われているのか、SPring-8/SACLA user informationのページで公開されている内容をまとめてみた。 生体高分子の結晶学に限る。コヒーレントイメージングは除外している。 "Nano-crystallography of G-protein co…

マップを描く

XYZLIM には、grid 座標も分数座標も指定できる。以下は cell 全体を描く場合。 fft HKLIN data.mtz MAPOUT map.ccp4 <

アタマと手

先日 Twitter で、実験科学はアタマを使わないのではないか――という発言があって、賛否両論を呼んでいた。それについて私の考えとして発言したことをまとめておく。もちろん実験科学でもアタマを使う。しかし、アタマがいくら働いていても手を動かさないと何…

私の目標

以前、『将来に希望や欲望を持たない』と書いた。「諦める、いや逃げ出すことで精神安定を図ってきました」という記事も書いた。その上で、実現可能性はともかく、目標らしきもの、あるいは理想があるとすれば、 どんな回折画像が与えられてもそれが構造解析…

DPS アルゴリズムを理解するための習作 -フーリエ変換による周期の検出-

DPS アルゴリズムでは、逆空間での散乱ベクトルを一次元に射影し、その長さの周期性をフーリエ変換によって検出する。例えば a* 軸長が L の結晶で散乱ベクトルを a* 方向に射影したとすると、(1, k, l) という反射は全て長さ L に射影されるし、(2, k, l) …

Post-refinement についての覚え書き

Post-refinement について、 Rossmann, M. G., et al. "Processing and post-refinement of oscillation camera data." Journal of Applied Crystallography 12.6 (1979): 570-581 を読んでいる。主な流れは以下の通り。 通常の指数付けと積分を行う。格子定…

結晶の不完全性の影響

スペクトル幅 ビームのスペクトル幅(spectral dispersion) は、Ewald 球の半経に幅を作る。したがって、Ewald 球の「厚みのある」表面で反射が観測されるようになる。 モザイク性 結晶のモザイク性 mosaisity の影響により、逆空間における格子点 (reciploca…

PyMOL と VMD の selection syntax まとめ

思いつくところから増やしていく。 PyMOL VMD 説明 resi 1+5+6 resid 1 5 6 残基番号 resn PHE+TYR resname PHE+TYR 残基名 name C+N+CA name C N CA 原子名 (元素ではない. CA はα炭素) X within 3 of Y X and within 3 of Y VMD では and が必要。なお、こ…

R の離散フーリエ変換

R で離散フーリエ変換を行う方法は以前にも確認したが、DFT には 1/N をつける位置などにいろいろな流儀があってややこしい。一歩一歩内容を確認しながら検証した。 一次元 N <- 128 x <- seq(from=0,length.out=N, by=1/N) v <- 2 + 3 * sin(x * 2 * 2 * pi…

Fraunhofer 回折

X線結晶学が扱うのは、Fraunhofer 回折の領域である。その導出について、(自分にとって)直感的かつ初等的な説明が見当たらず、長年モヤモヤしていたのだが、先日(昨年10月ごろ)腑に落ちたので書いておく。座標 O(0, 0) と P(d, 0) に2つの原子があるとする。…

CCP4 Study Weekend 2014 感想

CCP4 Study Weekend 2014 の録画が公開されている。プログラムはこちら。それを見て、Twitter に散発的に投下したメモをまとめておく。 土曜日第3セッション (Session 3 - New Mounts) Method: Integration of complementary instrumentation in high throu…

cctbx における crystal.symmetry や miller.set の周辺

久しぶりにやや精神の具合がよいので、昔のメモを復習しつつ公開。こんなことをして何になるのかという気持ちは拭えないが、もうどうでもよいのだ。crystal.symmetry は、結晶の格子定数と空間群を管理するクラス。ソースコードは cctbx/crystal/__init__.py…

TODOメモ

あいかわらず一進一退の状態が続いている。調子が良い時にやりたいこと。 Acta D に出ていた SFX の de-twinning 方法を toy example で試す order-disorder twin のときにああいう反射になることを、シミュレーションで確認

リファレンスに基づいたクラスタリングの危険性

電子顕微鏡による単粒子解析界隈でちょっとした騒ぎ(?)になっている事件がある。"Avoiding the pitfalls of single particle cryo-electron microscopy: Einstein from noise" (Richard Henderson, PNAS 2013) と、このページからリンクされている Related L…

CrystFEL と XDS の連携

CrystFEL では、XDS に指数付けをさせることができる。原理としては、CrystFEL が発見したスポットリストを SPOTS.XDS として書きだして、それを JOB = IDXREF とした XDS に読み込ませて、結果を IDXREF.LP からパースしているだけ。1フレームごとに XDS を…

CrystFEL の積分に関わるデータ構造について

CrystFEL の git にある最新の実装では、論文に書いていない機能もいろいろ盛りこまれているようなので、調査したメモ。自分向けに書いているので、わかりにくい部分があればコメントで質問してほしい。GPL なソースコードを引用しているので、このエントリ…

CrystFEL の反射に関わるデータ構造について

CrystFEL における反射についてソースコードを読んだメモ。このエントリはGPLとする。コードはlibcrystfel/src/reflist.c である。反射は _refldata 型で表され、これを包む Relection 型の node が Reflist 型の赤黒木に格納されている。木には、同じ指数を…

CrystFEL のピークサーチについて

CrystFEL におけるピークサーチについてソースコードを読んだメモ。このエントリはGPLとする。実際のワークフローでは、Cheetah などのより高速なソフトウェアで画像に反射が含まれる(hit) かどうかを判定し、hit だけを CrystFEL に食わせることになる。lib…

DIALS のビルド

2016/05/04: 今は Installation — DIALS documentation にしたがって操作すればよい。本記事は歴史的な観点から残してある。DIALS のビルド方法はどこにも書いていない(!)のだが、@yam_cpp 氏による 動かしてみたい機能があったのでDIALSをビルドしてみた.c…

cctbxのビルド

最新の cctbx をビルドするには、http://cctbx.sourceforge.net/current/installation.html の一番下のセクションの指示に従えばよい。単純に svn でチェックアウトしてきただけだと、ccp4io を始めとする種々の依存関係が揃わないため、ビルドできない。cct…

dials.import で処理の準備をする

dials.import *.osc とすると、画像のヘッダを元に sweep.json と param.phil が作られる。sweep.json は { "__id__": "imageset", "template": "#####.osc", "beam": { "direction": [ 0.0, 0.0, 1.0 ], "wavelength": 1.5418000221252441, "divergence": 0…