構造

R でバイナリファイル (MTZファイル) を読んでみる

R でバイナリファイルを読む練習をした。クロマトグラフィーのデータや結晶学のデータファイル(MTZファイル)など、バイナリファイルを直接読めると便利だ。R では、file 関数でファイルを開き、seek で目的の箇所に移動して、readBin でデータを読み込む。仕…

原子散乱因子のGaussian展開

原子散乱因子のうち、異常分散の影響を受けない項 は角度に (sin theta over lambda で stol と略される)の形で依存する。これを、ガウス関数の和に展開してとして扱うことが多い。係数は、電子の波動関数を Gaussian-type orbital を基底にして量子化学計算…

原子散乱因子の異常分散項をプロットする

原子散乱因子 atomic scattering factor の異常分散項 f' と f'' は、CXRO X-Ray Interactions With Matter にある Atomic Scattering Factors から入手できる。Reference: B.L. Henke, E.M. Gullikson, and J.C. Davis. X-ray interactions: photoabsorptio…

ガウス関数のフーリエ変換

ガウス関数シリーズの続きとして。ガウス関数のフーリエ変換もまたフーリエ変換となる。定法通りに平方完成して進めると、となる。既に周波数領域のガウス関数が見えている。後は積分部分が定数になればよい。この積分は、複素積分に経路拡張して考える。(-R…

XFEL での構造解析まとめ Structures solved using XFEL

まだ論文化されていない(unpublished)ものも載せているが、それらは録音や録画がネットで公式配信されているシンポジウムなどの情報にのみ基づいている。 Last update: 2014/01/28 PDBID 蛋白質 施設 手法 分解能(Å) ソフトウェア 備考 文献 PDBID protein b…

Inkscape で矢印を描く

Inkscape では、パスの端に矢尻をつけることができる。例えば、下の図のように: [フィル/ストローク]パネルを出して(Shift+Ctrl+F)、[ストロークのスタイル] にある[始点マーカ]、[終点マーカ]を選択すればよい。マーカの色はストロークの色を反映しないよう…

R でフーリエ変換を行い、位相の重要性を確認する

R でフーリエ変換を行うには、stat パッケージ(つまり、デフォルトで読み込まれる環境)に含まれる fft を使う。ついでに、いわゆる Fourier duck の実験をしてみた。 N <- 128 # 実空間の点の数 # トルエンっぽい平面分子。座標は手計算。原子距離は適当。 a…

回折斑点の位置と形は何で決まるか

回折斑点の位置は何で決まるか。逆に言えば、回折斑点の位置から指数付けをするには何が必要か。 結晶の向き 格子定数 検出器の位置 X線ビームの波長と向き 1, 2 は、いわゆる orientation matrix で表現される。MOSFLM では、1は回転行列U、2は逆格子の基底…

Parseval の定理の結晶学での意味

たぶんどんな教科書にも書いてあることだが、先日、やっと腑に落ちたのでメモ。パーセバルの定理 は、フーリエ変換後のノルムと、元のノルムが一致することを表す。すなわち、ということ。結晶学では、f(x) は実空間における電子密度、F(X) は構造因子 F(h) …

tr(AB) = tr(BA)

行列の積は可換ではないが、trace は保存する。で証明終わり。対称操作を表す行列 M の基底変更を行なうとする。 この場合でも となるから、trace は変わらない。結晶学において、回転行列が何度の回転なのかを によって調べることができる(その理由は Zで行…

orientation matrix などをMOSFLM の出力でも確認してみる

逆格子ベクトルを R で確認 - biochem_fan's noteの続きとして10日ほど前にやりかけたまま、盆休みなどで止まってしまっていること。下書きに溜め込んでいても仕方がないので公開しておく。さきほどと同じ Thaumatin in house のデータセットを使う。 Sugges…

color accessibility から色覚について考えた

今、構造生物学分野の論文を書いている。PyMOL のデフォルトでは、1つ目の蛋白質分子の cartoon 表示が緑色になる。側鎖やリガンドを stick で表示すると、炭素が緑で酸素が赤、窒素が青というおなじみの配色になる。こうして作った図を共著者に見せたら、赤…

CrystFEL の hdfsee メモ

CrystFEL 付属の HDF 画像ビューア hdfsee の使い勝手がイマイチなので、いろいろ改造している。素直な GTK アプリケーションなので、触るべきところは自明だが、一応メモ: ソースコード ソースコードは hdfsee.c, hdfsee-render.c, dw-hdfsee.c と同名のヘ…

逆格子ベクトルを R で確認

逆格子の定義として、結晶学の教科書では外積を使った表現が出てくることが多いが、逆行列を使った表現のほうが「ちょっと実験」するにはコードしやすい。数学的な詳細はまたの機会に触れるとして、簡単に確認してみよう。以前 in-house の R-AXIS IV で取得…

CrystFEL でパネル座標から検出器座標へ (.geom ファイルとその周辺)

CrystFEL では、検出器を定義するのに .geom ファイルを使っている。LCLS の検出器は小さなパネルをたくさん並べた構造になっており(たとえば https://confluence.slac.stanford.edu/display/PCDS/Pds+csPad を参照)、その配置は自明ではないからだ。このフ…

構造のクラスタリング

ラボで、超多次元データのクラスタリングとか分布の比較といったことが研究されている。対象となるデータは、多チャンネルFACS(10マーカx1万細胞とか)とか LC/MS だったりするわけだが、私にとっては蛋白質構造が一番親しみ深いので、そこでの手法を調べてみ…

Gromacs の並列化メモ

Gromacs 4.6 は GPU カーネルを OpenMM から独立させてめちゃくちゃ早くなったらしい。GTC Express Webinar にある資料によると、6 thread + GTX Titan で GLIC channel が 15ns/day とか! 25K atom くらいの小さい系(explicit solvent, PME) だと、100ns/da…

周期境界条件の可視化

分子動力学(MD)シミュレーションでは、周期境界条件を利用することが多い。シミュレーション中に分子の重心が移動していって、分子の一部が単位胞の境界を超えてしまうと、ファイルの中では反対側の端から出てきたと表現される。これをそのまま分子ビューア…

「コヒーレントな場合は振幅で足す、そうでない場合は強度で足す」わけ

X線結晶回折において、「コヒーレントな場合は振幅(F)を足してから二乗して強度を得る、コヒーレントでない場合は強度(I)のレベルで足す」ことについて、なにかすごい物理的意味があるような気がしていた。後者は例えば相晶(twin)の場合に出てくる。ビームの…

コヒーレンスについて少し理解が深まった気がするが、まだまだ怪しい

Wikipedia 英語版の diffraction の coherence 節 の説明が分かりやすかったので、自分の言葉でまとめる。 longitudinal coherence 距離の異なる経路をたどった波が干渉しあうという図がよく書いてある。これらの波は違う時間に光源を出発したものだ。光源の…

CrystFEL tutorial をやってみた(未完)

CrystFEL のチュートリアルが更新された。CXIDB にあるリゾチームのデータセットを使うようになっている。書いてあるとおりにやれば動くのだが、気がついた点をメモしておく。 データの形式 データのダウンロードは CXIDB の当該エントリ から行うのだが、cx…

長方形を回転する直線が横切る長さ

X線結晶回折法でのデータ収集では、固定されたビームに対して結晶を回転させてデータを収集していく。結晶は球形ではないので、回転につれてビームが結晶を貫通する長さが変化し、それに比例して回折強度が変化する。スケーリングでは、この強度変化をなめら…

Wilson 分布を確認していたら、「確率変数の和の小数部分の分布」やら「二次元ランダムウォークの成分の独立性」が問題となった

原子が単位格子中にランダムに散らばっているとしよう。i番目の原子の座標(fractional coordinate)を、原子散乱因子をとすると、結晶全体からの散乱は指数を h として、で表される。なお、この手の式ではいちいち書かないのが普通だが、 は指数 h に依存する…

モデル構築・精密化の自動化

先日、数理統計を専門とする先生に結晶学におけるモデル構築と精密化の話をしたら、モデル構築に人間の介入が必要であることが「キモチワルイ」という感想だった。人間の介入が必要ということは、そこにバイアスが入るリスクがあるということであり、それが…

精密化に疲れた

今精密化している構造は、solvent content が 70% 以上あって、packing が緩い部分もあり、分解能のわりに電子密度が汚い部分がある。そのせいか、直しても直しても、Ramachandran plot の favored が 95% くらいより改善しない。Molprobity で 98% 以上にし…

Ramachandran plot について

Ramachandran plot の outlier の基準は、PDB登録数が増えれば、それに応じて改訂されるべきものである。印象としては、Coot は厳しく、Molprobity は寛容、PROCHECK は中間。ccp4bb の2007年のこの発言によると、PROCHECKはオワコン、Molprobity を使ってお…

結晶学的 R factor と統計学におけるR^2

先日のラボ内勉強会で、決定係数 R^2 値(wikipedia)の話が出た。R^2 の定義は である。すなわち、モデルとデータの二乗残差をデータの分散で割って、1から引いたものである。結晶学におけるモデルとデータの適合度評価には、R factor(wikipedia) を用いる。…

少ない大きな違いに注意

平均や分散やRMSD(Root Mean Square Deviation)といった量は、要素ごとに何かを合計したものを最後に要素数で割ることで計算する。したがって、大きく異なる要素が数個あっても、全体数が多ければ、その影響は覆い隠されてしまう。何をもって「異なる」とい…

cartoon 表示でリボンを細くしてすっきりさせる

可視化のポイントは、余計なものをいかに省いて要点だけを際立たせるかである。類縁の蛋白質の構造を重ねて比べた図はよく論文で見かけるが、PyMOL のデフォルト設定のままでは cartoon 表示の帯が太すぎて奥の部分を隠してしまい、全体像がつかみにくくなっ…

次元の呪い

これはメモ。 次元が上がると、増えた次元に"逃げて"しまうこと。例えば、無限次元の線形空間では有界閉集合なのにコンパクトでないものがある。 密度推定をしようにも、スカスカで近傍に点が全然いないこと。 点から多面体への最短距離を計算するときのオー…