はじめに

興味深く思ったことを書いていこうと思う。何もかもつまらなく感じて辛くなることがあっても、今、面白いと思ったことは本当なので。その一方で、持病が悪い相にある時は、愚痴っぽいことを書いていることも多い。そんな恥をあえて晒している理由は、精神不調に書いた。

全角のシャープ(#)は、もっと書くべき・要検討・あるいは直したいが、とりあえず公開してしまう場合につける目印である。本来#がなくなってから公開すべきであるが、完成度100%を待っていると下書きが増えるばかりで、吐き出せるものも吐き出せなくなるので。特に、しばらくは、下書きに溜まった大量の原稿を処分することから始めたい。

学問・技術的な話については、twilog を発掘していただいたほうが良いかと。

行列の成分の書き出し

当たり前のことしか書いていないが、下書きに眠っていたので公開しておく。

行列の計算で、成分を顕わに書き出したいときがある。

まず
 (\mathbf{X} \mathbf{Y})_{st} = \sum_{i} X_{si} Y_{it}
が鉄則。

行列が 3 つ以上並んだときも、隣り合う添字同士がペアになり、あぶれた両端の添字が外に出てくる。
 (\mathbf{X} \mathbf{Y} \mathbf{Z})_{st} = \sum_{i} \sum_{j} X_{si} Y_{ij} Z_{jt}

転置があるときは、そこだけ添字が逆転する。
 (\mathbf{X} \mathbf{Y}^T \mathbf{Z})_{st} = \sum_{i} \sum_{j} X_{si} Y^T_{ij} Z_{jt} =  \sum_{i} \sum_{j} X_{si} Y_{ji} Z_{jt}

ここでは、和に関わる変数を i, j, k, ... とし、そうでないものを s, t, u, ... とした。

 \mathbf{v}^T\mathbf{X}^T\mathbf{X}\mathbf{v} のような一見ぎょっとするやつが来たときも、まずは型があっているかを確認しよう。
 (n, 1) ^T \times (m, n)^T \times (n, m) \times (1, n) = (1, n) \times (n, m) \times (m, n) \times (n, 1) = (1, 1) で辻褄があっている。

次に、この成分を展開してみる。縦ベクトルは (n, 1) 行列、その転置である横ベクトルは (1, n) 行列だと思って考える。

 \mathbf{v}^T\mathbf{X}^T\mathbf{X}\mathbf{v} = \sum_i \sum_j \sum_k v_i X_{ji} X_{jk} v_k
となる。

Nature に筆頭で出して、英国でパーマネントの職も得たけど、やりがいがなくなったので辞めます

はじめに

筆者*1は構造生物学(X 線回折と電子顕微鏡単粒子解析)のためのプログラム開発とデータ処理を専門としている。昨年、英国の研究機関にて任期なしの investigator scientist ポストに昇進し、Nature に筆頭著者として論文を出し、年間被引用数 1850 以上、h-index 32 と、傍からは順風満帆のように見えるらしい*2。しかし、下宿が 1ヶ月の猶予のみで突然閉鎖されることになったという生活面でのトラブルと、2019 年頃から感じていた研究への不満と意欲低下が合わさって、4 月に精神的な不調を来たした。研究に集中できないどころか、スーパーの惣菜を加熱するだけの食事すらできない日が生じ、体重減少や動悸を始めとする身体症状まで出はじめた。ただでさえ住宅不足なうえ、コロナウィルス騒動のせいで人の流動性が減り、不動産屋の対面窓口も閉まった Cambridge で新たな住居を探すことは困難を極め、その苦労をしてまでマンネリ化してやりがいと面白みの減った研究を続ける気にはなれず、下宿を引き払って 5 月頭に帰国することとなった。帰国後 3 週間が経過した現在、精神的・身体的症状は寛解したが、今の研究課題に対する意欲は失われたままである。晩秋までは有給休暇の消費と日本からの遠隔勤務という形で現職を維持できるし、する予定だが、それ以降に再渡航して復職することはおそらくない。

この記事では、研究面について感じたことを書く。Staff scientist という日本ではあまり知られていない役割の意義と困難について、参考になればと思う。宿舍トラブルとコロナウィルス騒動の影響や帰国を決心するまでの迷いについては、この記事にも増して主観的な内容になるので、別の機会に譲りたい。当時の状況については、自分の Twitter の過去ログ*3 を参照すれば分かるはずだ。現職について批判的なことも書くが、あくまで自分の好みや方向性からズレてきたという意味で理解してほしい。私の困難に対して、上司や同僚は親身に相談に乗ってくれたことを明記しておく。

専門家としてのアイデンティティ

しばしば誤解されるし意外に思われるのだが、自分が得意とし、やりたいと思っていることは、世界に先駆けて何かを発見したり開発したりすることではない。世界最先端の知見や技術をいち早く理解し習得し、多くの対象に適用し、普及させることである。端的にいえば、研究者というより専門家・技術者が自己像である。欧米の研究機関では、自分自身の研究を推進するのではなく、高度な専門性を持って他の研究者に技術提供する役割を staff scientist *4 と呼び、PI を目指す研究者とは異なったキャリアパスとして確立している*5。そのような役割に意義があると信じるのは、次のような現状があるからだ。

理論家の多くは、現実のデータセットや解析に伴う泥臭い点を嫌うし、質問への対応や説明書の執筆といった「研究として評価されない雑用」に時間を割くよりも、新手法の開発に時間を使いたがる。新手法を開発した直後こそ試験と宣伝を兼ねて実験家との共同研究としてデータ処理に従事することもあるが、それ以降は単なる繰り返しとして敬遠することが多い。

一方、実験家(生物学者)にとっては、数式だらけの論文を読んで新手法の原理や前提や限界を理解するのは大変である。いろいろなライブラリへの依存関係を解決しながらプログラムをコンパイルし、計算機クラスタで並列実行するためのスクリプトを書いたりする IT スキルも必要である。トラブルが生じると、そもそも何を報告すればいいのか分からないから、「動きません」というだけのメールを開発者やメーリングリストに送りつけて、「環境が具体的に書いてないと調査しようがありません!」と開発者を苛立たせ、かといって ldd といったコマンドを使って状況を確認する知識もないので、立往生する。

プログラムが動くようになったとしても、使い方が問題だ。一人の学生なりポスドクが 2 ないし 4 年の在籍中に解く構造は、たかだか 2, 3 個というのが普通である。したがって、うまく行かない時に試料が悪いのか処理の方法が悪いのか判断したり、解析手順を工夫するのに必要な経験を十分に積むことができない。ひとつの手法やプログラムに慣れて来た頃には、それが時代遅れになっていたりする。解析能力の向上には、EMPIAR という論文化された構造の生データを公開しているデータベースから多数のデータセットをダウンロードして練習するのが理想だが、それには膨大なネットワーク帯域・ストレージ・計算資源が必要*6となり、本業の実験と平行して行うのは時間的にも経済的にも非現実的である。そもそも、データ処理の技術的難度と生物学的インパクト(要するに Nature などの有名雑誌に載るか)は必ずしも比例しないから、時間を割いて高度な解析技術を身につけることが生物学者として成功する上で最適な戦略とは限らない。

このような状況下で、データ解析の専門家として、理論家・開発者と実験家を橋渡しする役割に意義が出てくる。実験家との共同研究や公開データの再処理を通じて大量のデータセットを処理し、経験やノウハウを蓄積する。多数の手法を比べることで各手法の癖を把握し、課題に応じて適切な手法を選択できるようにする。こうして処理プロトコルや困難なケースの対処法を確立し、啓蒙する。実験家からの要望を選別(トリアージ)し、普遍的に有用な提案であれば開発者に伝え、そうでなければ個別にスクリプトを書いたりして対応する。無意味な提案であれば、その旨を伝えて止めるよう説得する。問題報告は相手の環境に依存するのか切り分けて、プログラム側に原因がある場合のみ対処したり、開発側に伝達する。このような働きを通じて、理論家・開発者と実験家がそれぞれの本業に専念できるように手助けすることは、研究を円滑に進める上で有益なはずだ。

以上が staff scientist を志す表向きの理由であるが、本音としては次のような理由も大きい。そもそも自分には新しいことを自分で見つけたいという願望がない。自分にとって新しいことであれば、それが他人の仕事であれ、30 年前に知られていたことであれ、同じように興奮できる。根気もないので、解けるかどうか分からない難しい問題に年単位で取り組めない。数日~数週間程度で解ける問題をたくさん処理するほうが楽しいし、興奮の合計を最大化できる。つまり、新発見に伴う強度 100 の興奮を一年に一度味わうよりも、強度 10 の興奮を毎月味わいたいのである。解析の専門家としていろいろな実験家と共同研究すれば、自然と多くのデータ・多くの話題に触れることができ、新鮮で飽きることがない。同じようなスキルを持ったライバルと熾烈な競争をするよりも、依頼者にとっては困難だが自分にとっては容易な問題を解いたほうが、手っ取り早く感謝(ちやほや)される。これは経済学で言うところの比較優位 comparative advantage の話であり、価値の違いを橋渡しして稼ぐのは商売の基本である。



自分もこのタイプだが、こういう人は総説(ドキュメント)を書くだけでなく staff scientist が向いていると思う。

私は過去 10 年近くに渡って、この方法で研究に貢献し、実績を重ね、評価を得てきた。複数のオープンソースの科学ソフトウェアについて本家開発者の信頼を得て commit 権をもらっており、パッチを提供してきた。昨年に昇進した任期なしの investigator scientist ポストも、所属グループが開発しているソフトウェアのメンテナンスと研究所内外のユーザ支援が職務の半分であり、残りは好きな研究をして良いと言われていた。以下では、私のこのような(精神的)ビジネス・モデルがどう破綻したかを説明する。

分野の雰囲気の変化

この 2, 3 年で分野の雰囲気が大きく変わった。一言でいうなら、協力的 cooperative から競争的 competitive への変化である。競争は非常に激しく、高インパクトな標的については back-to-back どころか、3 つ、下手したら 5 つのグループから同じ構造が立て続けに発表されることも珍しくない。このような状況では、正しいことや望ましいことを追求し少しでも分解能を上げることより、一刻も早く構造を出し競争に勝つこと ”get things done” が優先される傾向にある。精密化・合成マップ・密度改善・分解能の定義などについて、理論上は穴があったりバイアスや過適合の恐れがあることも、「とりあえず動けばいいや」「みんな使ってるから大丈夫だろう」と深く考えずに使う。「この手法は望ましくない」「この指標には意味がない」と助言しても、査読者に要求されたからやらざるを得ないなどと言って聞く耳を持たない。その結果、使い勝手が良いソフトや有名で声が大きい開発者が提案した手法が、問題点があっても盲信され、慣習として定着し、使われ続ける。意味がなかったりやるべきでない手法を実装するように要求される。

自分が目指す専門家とは、依頼者の要求を盲目的に実行する下請けではない。少しでも良い解析を行って、依頼者の行う研究の質を高めることが存在意義である。しかし、依頼者がもはやそれを望まないのだ! このような依頼者に対して、親切にする気がなくなった。啓蒙活動をしたところで歓迎されないどころか煙たがられるだけである。若い頃は「それは間違っている」と主張して理想のために戦う元気があったが、そういうエネルギーも尽きた。結果として PDBEMDB が質の低いデータで汚染されようが、もう知ったことではない。学習性無力感 learned helplessness に取り憑かれている。

コモディティ化と専門家の役割の低下


このツイートには完全に同意だ。

インターネットの普及などによる情報拡散の加速により、世界で数人の専門家しかできない最先端技術もあっという間に普及し、数年後には誰でもできるようになる。90 年代は組み換え DNA、2000 年代はノックアウトマウスの技術を海外で学んで帰国すれば、それで 10 年はやっていけた。現在、このようなことはほとんどない。

ソフトウェアについて言えば、アルゴリズムが成熟して頑健になり、データセットごとのパラメータ調整といった介入がほとんど不要となった。以前は専門家でないと解けなかったデータセットが大学院生でも解けるようになり、専門家が処理しても学生が処理しても、分解能に大きな差は出ない(せいぜい 0.2 Å 程度)場合も多くなった。ソフトウェア配布技術も進歩し、conda などのパッケージマネージャや Docker などのコンテナ化技術が登場した。configure と make が必要で、知識がなければ実行すらできないといった困難は減った。ユーザの IT リテラシも向上しており、PATH の意味や設定方法が分からない人は稀となり、Pythonawk でちょっとした作業ができる人も少なくない。少しくらいの困難なら、専門家に任せるよりは、一度だけ相談して後は自力でできるようにしたいという学習意欲と余裕を持つ人が増えてきた。このような状況で、データ解析の専門家として声がかかることはどんどん減っていった。

難しいケースについて解析の相談が来たとしても、その形式は以前と大きく異なる。日本の前職にて X 線自由電子レーザ XFEL を利用したシリアルフェムト秒結晶学 SFX に従事していた時は、プロジェクトの初期から解析担当としてチームに呼ばれ、実験計画の立案にも参加していた。SFX に対して過度な期待があれば、「それは困難だ」とか「別の手法のほうが適している」といった助言さえ行った。データ解析については、処理はもちろんのこと、論文の method 欄の執筆や査読コメントへの対応まで自分に一任され、責任を持って取り組めたし、やりがいがあった。チームには生物学の他に分光学や計算化学の専門家もいて、彼らとのやりとりの中で自然と他の手法のことを学んだりして、視野が広がっていった。

一方、単粒子解析プロジェクトにおいては、データ収集が終わり、解析を試してうまく行かず、行き詰まってはじめて「なんとかならないか」と声がかかる。つまり、プロジェクトに対して総合的に関わることができない。データ収集で望ましくないこと(深い焦点外しや位相板の利用など)が行われていても手遅れである。解析も、全段階のごく一部について助言を求められるだけで、通して実行するのは自分でない。他の段階における不手際を指摘しても、「やりなおす時間がない」などと言われてそのままにされる。そもそも、他人の解析ログを遡って、どこまでまともで、どこからおかしくなったか把握するのは、自分で最初から解析していれば不要な骨折りである。焦げ付いた部分の尻拭いだけさせられて、そこを解決すれば「後は自分でやります」と持ち去られる。上に書いたように、望ましくない解析法をそう指摘しても使われてしまうことも多く、自分の言うことを聞く気がないならそもそも相談するなよと不快に感じる。つまり、解析に関してすら中途半端な関わり方しかできない。自分にとって不本意な解析になっており、共著者にすると言われても責任を持てないから断らざるをえない場合もしばしばだった。

誤解がないように言っておくが、こういった変化は技術の普遍化・コモディティ化であって、決して悪いことではない。むしろ歓迎すべきことである。自分の優位性を維持するためにノウハウを秘匿する邪悪な専門家もいるが、私は積極的に解析ノウハウを公開してきた。コモディティ化した技術・ルーチン化した解析は実験家に任せ、難しいデータセットへの対応や最先端の技術を追求し続けるのが専門家としてのあるべき姿である。実際私も、古典的な X 線結晶学・シリアル結晶学・単粒子解析と 3-4 年ごとに新しい手法を学び続けてきた。そういう意味で、そろそろ次の分野に移る潮時なのは間違いない。しかし、難しいケースについてさえ専門家を頼らない・尊重しないのは実験家の行き過ぎた慢心であるように思い、遺憾である。

商業化・特許・ブラックボックス

単粒子解析は創薬など産業界からの需要も大きいため、営利目的の企業が解析プログラム開発に参入してきた。彼らは、ソースコードはもちろんアルゴリズムの詳細も公表せず、そのうえ特許によって再実装さえ妨害してくる。これはアカデミアの開発者の不満を掻きたてた。企業側はアカデミアの成果(論文や公開されたソースコードから得た情報)をいくらでも利用できるのに、アカデミアは彼らの成果を取り入れ発展させることができないのである。この一方通行性に不公平感を感じる者は少なくない。特許は著作権と違い、独自に開発したものがたまたま一致してしまった場合でも侵害が成立する。そのため、苦労して開発したプログラムを公開していたら、いきなり差し止めや損害賠償を要求される可能性すら(現実的にはどうであれ原理的には)存在するのである。苦心して進めていた研究が他のグループに先を越されインパクトが低下してしまうのはアカデミアでは避けられぬ競争の一面であるが、特許の場合は、公開すら妨害されうるという点でより深刻だ。なお、学術目的なら特許を自由に使えるのではとよく言われるが、これは誤解である。技術自体を研究するために特許を取られた手法を再実装して実施することは可能だが、構造を解くための道具として使ったり、配布することは許されない*7。バイナリでなくてソースコードで配布するなら大丈夫という論法も、法的根拠は怪しいものである。

私にとって、研究の一部がブラックボックスに依存しているというのは、科学のあり方として受け入れがたいことである*8。私が以前行った研究では、SHELX という結晶学における de facto standard 的なプログラムを利用したが、その後のバージョンアップで挙動が変化し結果を再現できなくなってしまった。Web サイトでは最新版のバイナリしか配布されておらず、変更履歴にも具体的に何が変わったのか説明がない。私自身は旧バージョンを保存しているが、これには日付チェックが入っている*9ため、コンピュータの時計を狂わせないと実行できないし、日付変更は厳密にはライセンス違反である可能性すらある。このような経験があるため、いくら性能が良かろうとも、ソースコードが自由なライセンスで配布されていないプログラムを研究に用いることは可能な限り避けるようにしている。

そもそも科学というのは世の中から未知を減らして、人類の共有知と能力を増やしていく営みであるのに、経済目的であれ競争目的であれ、ノウハウや原理を秘匿して世の中の未知を増やす行為は唾棄すべきものにしか見えない。自分の研究の一部が仕組みの分からないブラックボックスに依存していて、気持ち悪くないのだろうか。再現性を不安に思わないのだろうか。しかし、そのような私の見方を理想主義的で世間知らず(ナイーブ)で非現実的だと考える者は研究者の中にも多い。大学で開発されているプログラムにすらソースコードを提供しないものが少なくない。

畢竟これは個々人の思想の問題だから私の考えを押し付けることはできないけれど、このように自分と異なる価値観を持つ人が大多数を占めるようになった集団に対して仲間意識や帰属意識を感じることは難しい。居心地が悪くなっていき、そのような集団のために頑張ろうという気持ちが失せた。たとえ顔の見えない大多数の研究者が自分と思想を違えようとも、少数であれ自分が直接やりとりする共同研究者さえ価値観を共有し、自分を必要としてくれたら、彼らに奉仕することがやりがいとなっただろうけれど、単粒子解析ではそういう深い付き合いをする機会がなくなっている。

シェアの低下

自分の所属グループが開発している解析ソフトウェアのシェアは、全盛期には 9 割近くあったが、今は商用ソフトウェアの台頭で 6 割程度まで下がっている。この調子でいくと、今年か来年には逆転する見込みだ。シェアが低下し、同等以上の性能を発揮するプログラムが他にあるならば、そのソフトウェアを維持する動機は低下する。自分たちのソフトウェアが分野に不可欠な貢献をしているという自負とやりがいが失われるからだ。次に台頭してきたのがアカデミア発のオープンソース・ソフトウェアなら、同僚はともかく、自分にとってはまったく問題ない。新しいプログラムに習熟し、そのノウハウを実験家に提供するだけである。原理が気になればソースコードを読めばいいし、プログラムに不満があれば自分で直して開発者にパッチを提供してマージしてもらうこともできる。私にとって、他のオープンソース・ソフトウェアは敵でもライバルでもなく仲間である。しかし、ブラックボックスの商用ソフトウェアに対しては、自分は単なるオペレータで終わってしまう。そんなことはやりたくない。

そもそもなぜ商用ソフトウェアの台頭を許したのかというと、アカデミアでは新機能の開発に重点が置かれユーザインタフェース・速度・安定性といった使い勝手の向上が二の次になること、そういった予算がつきにくいこと、理論家はソフトウェア・エンジニアリングの訓練を受けていないのでモジュラーな設計・テスト駆動開発継続的インテグレーションといった手法に馴染みがないこと、アカデミアの給与体系では優秀なソフトウェア・エンジニアを雇用するのが難しいことといった構造的問題がある*10が、これについては別の記事で議論したい。

計算資源の不足

ここまでは主に業界の変化について述べてきたが、ここからは所属機関やグループに対して感じていた不満を説明する。

所属している研究所には、個人持ち・グループ持ちの高級機器はほとんどなく、代わりに共用資源が豊富である。電子顕微鏡質量分析器・ FACS はもちろん、超遠心機や HPLC や低温室や培養装置も共有である。予算も研究所全体で一括して国から配分されるから、ある意味一蓮托生であり、研究所全体の実績を高めていこうという機運がある。そのため試薬やノウハウの融通も盛んであり、所内メーリングリストには「◯◯ の抗体ありませんか」「◯◯ をやったことある人、教えてくれませんか」といったメールが飛び交っている。これは基本的には良いことであり、装置の稼働率を上げて無駄を省くことができるし、若手 PI でも初期費用に苦しむことなく独立した研究を開始できる。

しかし、ストレージや GPU など計算資源はひどく逼迫している。ここ 1 年ほど、GPU ジョブは半日以上の待ちが常態化している。研究所全体で数 PB のストレージを持つとは言え、一人あたりの標準容量は 20 TB であり、データセットを 4 つほど置いて解析したら一杯になってしまう。建前としては PI と部門長が承認すれば上限を拡大できることになっているが、ストレージ不足のため実際にはほとんど許可が降りない。特に最近、ビームシフトを利用した高速撮影法が浸透し、一晩で数千枚の画像を撮影し、週末のビームタイムとなれば一万枚以上を集めることが普通となった。それで計算資源の需要が以前の数倍になっているにも関わらず、増強が追いついていない。共用クラスタの増設は 2, 3 年に一度の施設全体のアップグレードの時にしか生じないからだ。PI が独自に獲得した予算でストレージやワークステーションを購入して自分のグループ内に設置することも可能ではあるが、共用クラスタからマウントできない、ネットワーク接続が 10-40 Gbps の基幹回線ではなく 1 Gbps の末端になるなど、性能は相当劣る。

このように資源が枯渇すると、共用資源であることはデメリットとなる。自分の性格的な要因も大きいが、自分が使うのを遠慮すれば他の人がもっと有益なことに使えると考えてしまい、EMPIAR にある公開データセットの再解析など直接的には新しい成果につながらないジョブを投入するのを躊躇するようになった。自分の場合は解析法の検討が本業なのだから遠慮せずにやればいいとボスは言ってくれたが、占有ノードや追加のストレージを貰えるわけでもないし、精神的には楽にならなかった。ルールを守らずに対話的ノードで長時間の計算を実行をしているユーザへの不満と苛立ちが募った。GPU クラスタ利用者の大半は電顕関係だが、別の計算で GPU を何週間も占有している他分野の同僚のことを「所詮シミュレーションは不正確で信頼できないんだから、GPU 時間の無駄」と陰口を叩くのが耳に入るなど、ギスギスしたものを感じるようになった。

上の節で仲間意識という言葉を使ったが、ここでも同じことである。資源に余裕がある間は、同僚は仲間であり協力して成果を出そうという雰囲気だったのに、余裕がなくなると資源を奪い合う競争相手になってしまったのである。

新しい IT 技術を習得できない

前職で日本のラボにいた時は、グループ内の計算機クラスタワークステーション(合計 50 ノードほど)の管理も担当していた。ユーザアカウントの管理といった定型業務だけでなく、新規ノードを追加する際の仕様策定・Ganglia などサーバ監視ツールの導入・OS の更新・謎のクラッシュや load average 上昇の原因特定と対策といったことも行っていた。このような IT 管理業務を研究結果や評価に直結しない雑用であるとして嫌う研究者も多いが、自分はスキルを向上させるよい機会として楽しんでいた。

現所属の計算機クラスタは scientific computing という専門の部局によって管理されており、このような機会はなくなった。その部局の人たちとは仲良くしていて、最近発生した問題についての話を聞いたり、所属グループが開発したソフトウェアがクラッシュしたとかプロセスがゾンビ化したといった障害を共同で調査して、問題が OS やハードウェアにあると判断した場合に再現コードを提供するといったやりとりはあった。また、新ノードの導入に先立って試用機でベンチマークをとって結果を報告することもあった。それでも管理者権限を得られたわけではないから、監視ツールのログを見たり、Docker などシステムの設定変更が必要なことを試すのは無理だった。

このような環境にいては、IT 面での新技術や方法論についていくことが難しいと感じるようになった。IT 管理は研究者の仕事でなく、そういう「雑務」に気を配らなくてよいほうが正解ではないかという意見もあろうが、自分にとっては、個人では買えないような大規模なコンピュータ・システムを管理すること自体が楽しみのひとつだったので、それが失われたのは退屈を増した。英国への移籍後も日本の前所属に対して遠隔で IT 管理を手伝っていたのだが、3 月頃、もう手伝いは不要と言われてしまい、完全に IT 管理実務の機会を失ったこともこれに拍車をかけた。将来他の職に移る際にも IT 管理の実地経験が評価される可能性が高いので、その機会が完全になくなるのは耐えがたかった。

小回りがきかない

研究所にある数台の電子顕微鏡からは毎日 10 TB 以上のデータが出力される。これをユーザに届けるまでの間には、検出器ストレージから中間ストレージへのデータ移動とか、圧縮とか、データ収集に並行した on the fly 解析とか、やるべきことが多数あり、改良の余地も大きい。日本では自分がシステムを管理していたので新しいアイデアを思いついたらすぐに試せたし、利用者も同じ部屋に座っていたのですぐにフィードバックを得ることができた。一方現職では、電顕部門とか IT 部門とか利害関係や縄張り意識が絡むいろいろな部局に話を通さねばならず手間がかかる。中には保守的な人もいて、何を提案しても、障害点が増えるとか管理が煩雑になるとか文句を言って反対する。ユーザ数が数十人の装置と数百人の装置とでは運用思想が異なるのもやむを得ないことではあるが、組織が巨大すぎて小回りがきかないのは窮屈に感じた。

同僚や分野の関心との乖離

新しいソフトウェアを公開すれば、そこに含まれる機能はすぐ普及し陳腐化する。自分の専門性・先進性を維持するには、協働する理論家・開発者から継続して新機能が供給され続ける必要がある。自分が着任した 2017 年秋から 2019 年頃にかけては、同僚によって新機能が次々と実装された。彼は自分の担当する機能のコードは書くが GUI を起動したことは数えるほどしかなく、生データから始めて最後まで構造を解いたこともないという、典型的な理論家であった。私は彼の実装した新機能を様々なデータセットに対して次々と試すことで、新機能の適用範囲を探ったり、適切なデフォルトパラメータや処理方法を確立したり、問題点を洗い出して彼にフィードバックしたり、ユーザに新機能の使い方と結果の解釈の仕方を教えたりと、自分の特性にあった役割分担ができ、とても楽しい時間を過ごした。何よりも、最新の手法で既存のデータを再処理することで分解能が大きく改善し、ユーザから感謝される全能感*11が最高だった。残念ながら、彼の移籍とトモグラフィーへのテーマ変更によって、この分業は終わりを迎えた。

純粋な研究者にとっては、プログラムの実行速度を速めたりユーザインタフェイスを改良するのは本質的な仕事ではない。多くの問題がすでに解決された単粒子解析から、未解決の問題が多いトモグラフィーへ、彼らが舵を切るのは自然な判断である。単粒子解析についても、連続的な構造変化の取り扱いや局所分解能の大きく異なるマップの精密化といった課題は残っており、所属グループも深層学習などを用いたアプローチをしようとしている。しかし、上で述べた商用ソフトウェアに大きく先を越されており、特許の影響もあって、逆転は容易でない。

そもそもこれらは、生物学の階層を分子レベルから細胞レベルへ、上に登ろうとするものであって、単純なモデル化された系でよいから素過程を最高の分解能で観察することで化学の理解を深めるという、階層を分子レベルから原子レベルへ、下に降りて精緻化しようとする私の興味の方向とは正反対である。そのため、グループ内の打ち合わせに参加していても、同僚の開発テーマに関心が持てず苦痛を感じることが増えていた。生物学者から大きな構造変化のある標的について解析の相談を受けても、対象外であり、自分が解決すべき課題だと感じられなかった。所属機関の外にも目を向ければ酵素化学の研究に単粒子解析を使っている事例も存在するが、Nature や Science などのトップジャーナルへ載りやすいという意味での主流からは外れている。そのせいか、同僚にそういう研究の面白さや重要性を説いても、共感してもらえることはほとんどなく、「ニッチだ」「終わった分野だ」などと言われてしまうこともあった。

こうして、自分の興味のあることを続けていれば自然と最先端を走っていられるし、理論家にとっても実験家にとっても自分の存在が有益であれるという理想的な状況は崩壊した。繰り返しになるが、同僚や同分野の研究者と価値観を共有できているという仲間意識が失われていった。退職を相談したとき、上司や同僚は、本研究所がいかに世界最先端の exciting な研究をしているか、他に行ったら退屈するのではないかということを述べたが、いくら最先端であっても、自分が興味を持てなかったり、よしんば興味を持てたとしてもデータ解析に関わらせてもらえないなら、全く意味がないではないか。職務時間の半分は好きな研究をして良いと言われているが、自分が今興味を持っていること(MicroED や計算化学)を新たに学ぶにも、教えを乞える専門家も、道具として使っている実験家も、そもそもデータを持っている人も、周りにはいない。

他人事になってしまった

計算機資源の枯渇によって EMPIAR データの再処理が難しくなったこと、深い共同研究が減ったことなどにより、自分自身が最初から最後までデータ解析をする機会が激減した。実際、過去 1 年間で処理したデータは 1 つしかない。着任当時には、少なくとも月に 1 つは解析していたというのに。

これまでは自分自身がヘビーユーザだったからソフトウェアの不備にすぐに気づいたし、自分自身が不満を感じることで自発的に治そうという意欲が湧いた。今やトラブル報告は、親しいわけでも思想を同じにするわけでもない他人から来るだけである。となると、所詮は他人事、単なる面倒な仕事になりさがってしまった。データ解析の実務に従事しないから、最近はどのようなデータが取得され、どのような機能が望まれ、何が問題となっているのかを実感することも難しくなった。

自分の存在意義を信じられない

上司は自分のことを研究所とプロジェクトに不可欠な存在だと言ってくれるが、その一方で、ユーザインタフェースの改良は我々の仕事ではないとか、そんなことに時間を割いていたら研究評価が下がってグループが研究所から追い出される*12とか、他人の論文化済みデータを再処理して何になるのかといった発言も繰り返しており、自分の役割を本当に大事に思ってくれているのかどうか分からない。いわゆる mixed message を受け続けている。

同僚やメーリングリストなどでやり取りするユーザたちも、自分に感謝しているとは言ってくれるが、自分がいなくなっても回っていくだろうと思う。自分が抜けたら、ただでさえスパゲッティ状態でバグがもぐら叩き状態になっているコードはいよいよ破綻するだろうが、そうなってもユーザは商用ソフトに乗り換えるだけである。単粒子解析分野が崩壊するわけではない。もちろん分野が一人のメンテナに依存しているような状態は健全でないが、自分がいてもいなくても大して変わらないというのも面白くない。世界で自分しかできない技術を身に着けたいとか大それたことを言っているわけではない。例えば前職で担当していた技術は、自分と同等以上にできる人が世界に少なくとも 10 人はいたが、日本国内に限ると自分とあと一人*13くらいしかいなかったので、少なくとも日本の当該分野では自分が不可欠な人材であるという誇りとやりがいがあった。国内か、せめて所属機関内では、代わりがいない役割を果たしたい。

これは自分の承認欲求だけの問題ではない。解析の第一人者として認識されていればこそ、特殊な事例の相談が続々と入ってきて、さらに自分のスキルを向上させたり、知見を蓄積して開発にフィードバックすることができる。つまり専門家というのは、認識され求められてこそ成立する役割なのである。Nature で自分が筆頭筆者になった研究も、新型の電子顕微鏡を開発した会社から、顕微鏡の性能を最大限に引き出してやってくれと持ちかけられたものである。自分の代わりが多数いる状況なら、相談はあちこちに分散し、ノウハウが蓄積されないし、面白い共同研究もやってこない。

今後の方針

最初に述べたように、11 月頭までは日本からの遠隔勤務という形で現職を維持することが可能だし、そうするつもりだ。ちょうど新バージョンのリリースが迫っているということもあり、新規の研究開発をせずユーザサポートやバグフィックスに専念しても十分な仕事量がある。その後は、英国に戻って継続するか、退職するかのどちらかにせねばならない。9 月中に正式に手続きする必要があるが、戻らないことにほぼ心は決まっている。

幸いこれまでの実績から、単粒子解析のデータ解析の専門家としての役割で国内外の電顕施設と企業から声がかかっている。しかし、単粒子解析分野自体に対して上に述べたような不満があるのだから、そのままではうまく行かない可能性が高い。それらについて考える。

可能性 1: 日本の電顕施設での解析支援とその問題

日本は単粒子解析の普及が諸外国より数年遅れたという事情があって、ノウハウや人材の蓄積が進んでいない。そのため、欧米では実験家が自力で行えるような解析でも、日本では専門家の介入が歓迎される局面がまだあるようだ。日本の電顕施設に所属してこの遅れを取り戻す手助けをするのはやりがいがあるし、日本のコミュニティにとっても有益だと思う。ただ、この役割にはいくつかの懸念がある。

まず、データ解析以上に試料調製も重要だし困難である。基本的な解析すらできない超初心者においては、さまざまな条件で小データセットを収集して検討し試料調製に反映させるという反復ができていないと思われる。そのような段階のプロジェクトに関与しても、ゴミのようなデータを渡されるだけで解析を工夫する余地がない。この場合は、解析だけでなくグリッド調製や撮影にも助けが必要だが、自分にその能力はない。身につける機会がなかったのは痛恨事である*14

次の懸念は、商用プログラムの存在である。データ解析の専門家としてプロジェクトに従事するからには、最高の結果を最短で出すことが求められる。しかし、それを支える最高水準 state of the art のプログラムは、アカデミア発のオープンソース・ソフトウェアではなく、商業目的のブラックボックスになってしまっている。自分は、そのようなプログラムのオペレータになりさがるつもりはない。かといって、処理速度でも機能でも劣るプログラムに固執するのは、データ解析を依頼してくるクライアントに対して不誠実と言わざるを得ない。したがって、自分が開発してきたプログラムのノウハウを伝えるという役割ならともかく、一般的なデータ解析担当者としての職につくことには抵抗がある。

また、1, 2 年して日本が欧米のレベルに追いついた時点で自分の役割は終わるので、並行してその次にやることを決め、スキルを磨いていく必要がある。電子線回折 MicroED も実施している電顕施設なら結晶学の経験を活かせるし、化学系のプロジェクトに関与したり量子化学計算を学ぶ機会も得られるのではないかと期待している。

可能性 2: 電顕施設ではなく(生)化学系グループへ所属する

電顕施設ではなく、酵素学や生化学を専門とするグループに所属し、そのグループの構造生物学に関する一切(X 線回折・単粒子解析・構造精密化・シミュレーションなど)を引き受けるのも手である。そこには、計算機やストレージの管理・他のメンバの指導・論文化前の構造の最終確認といった仕事も含まれる。電顕施設に所属する場合と比べて、自分が興味を持てる酵素学や化学の研究に触れやすく、研究計画により深く関われることが利点だ。自分がいなければプロジェクトが進まないというやりがいも得られる。構造生物学と IT に関しては自分が責任者になるので、望まぬ解析をされてしまうこともないし、意思決定であちこちに根回しする必要もない。

この選択肢の難点は、自分と価値観を共有し、自分を信用して任せてくれる上司を見つけるのが難しいことだ。1 つのグループにあるプロジェクトだけではすぐに手が空いて暇になってしまうしノウハウが蓄積しないので、他のグループのデータ解析を手伝うことに難色を示さない、懐の広さも必要となる。同僚や学生を指導するのは構わないが、グラント申請や報告書執筆や研究会運営といった業務はやりたくない。自分が過去にやっていたように、新学術領域・ERATO・重点課題など複数のグループがコンソーシアム的に協力する大型プロジェクトに所属し、コンソーシアム全体のデータ解析を担当できるような立場が理想だが、現時点ではそのようなところからは声がかかっていない。

また、このような役割が得られるのであれば、英国・スイス・ドイツなどもアリである。自分にとって文化や価値観の点で日本より欧州のほうが居心地が良いのだ(アメリカと中国は文化的に合わないのでいくら待遇が良くても行かない)。ただし、今回で懲りたので、住宅など生活面で困らないことが必須条件である。

可能性 3: 仕事だと割り切って企業に行く

創薬や研究受託などを業務とする海外企業からも声がかかっている。オープンソースとして公開できないプログラムを書くつもりはないが、論文化できない構造解析に従事することには抵抗がない。話を聞いたところ、それぞれのデータセットを個別の工夫によって少しでも良くすることよりは、そこそこの結果でよいからどんなデータセットでも自動的かつ客観的に処理できるプロトコルと、それを社内の実験データベース(LIMS)と連携させるようなワークフロー構築が求められている印象である。

企業に行けば、アカデミアより収入はかなり良くなる。少なくとも 5 割増し、多いところでは 2, 3 倍になる。(その場合の待遇は不明だが)日本からの遠隔勤務を認める会社もある。しかし、アカデミアの待遇でも、家賃が安い日本で暮らすなら不満はないので、待遇を良くすること自体を目的として企業に行くつもりはない。どうせ数年したら新しいことをやりたくなるし、asexual *15な自分は結婚するつもりもないので、職の長期的安定性も重視しない。企業に行って多彩な電子ジャーナルが読めなくなるのも不便だ。そのため、あえて指揮系統などアカデミアとは全く文化が違うであろう企業にわざわざ行く理由がない。ただ、アカデミアでやりがいのあることを見いだせなかった場合に、仕事だと割り切って、企業に行くのはやむを得ないかもしれない。

おわりに

以上、長々とここ 1 年ほど感じていたことを書いた。共感してもらえる点もあれば、こいつ何言っているんだと感じられることもあると思う。それは仕方がないのだが、あえてひとつ強調しておきたいことがある。論文や引用数といった外から見える業績指標とか、上司や同僚やユーザからの役に立っているという感謝の言葉はありがたいのだけれど、自分が感じている孤独感(興味や志を同じにする仲間がいない)・無価値感(役に立てていない)・不満(やりがいがない)は随分異なるということだ。相手が本心から善意で言ってくれているのは分かるのだが、だからこそ、それをうまく受け止められないという価値観の違いや噛み合わなさがつらい。疲れた。

上で進路の可能性をいくつか書いた。そんなにポストがあるなら贅沢な悩みだと思われるだろうが、今は疲れ果てていて、すぐ片付く相談に答えるくらいはできるけれど、新しいアルゴリズムを実装したり複雑なバグを直すのは難しい。本格的に新しいことを学ぶ気力と集中力もない。国内にせよ国外にせよ、引っ越して新たな生活と人間関係を立ち上げる元気もない。もしかすると、11 月に今の職を失ったあとも、ただちには常勤の職に付かず、実家でゴロゴロしてなろう小説*16を耽読しながら、独立コンサルタント的に一件いくらでラボの IT 管理や解析の助言をしているかもしれない。

おしまい。

追記とコメント返信

2021/6/5 9:00 追加:

このブログを長いこと放置していたが、本稿投稿をきっかけに見直して、博士号取得が共同研究者の都合で延びて病んでいた 2014 年頃も同じような苦しみを綴っていたのを思い出した。essay カテゴリに多いが、特に関係する記事として、私の目標科学ソフトウェアがオープンであること科学の先端と接触していたいなどを挙げる。

> やはりNatureに出すまでは論文書いてることまで秘密にしてたのかが気になる
全然。上司や同僚には進捗を実況していたし、世界新記録を達成した後はデータを見せてくれと同僚が次々と部屋にやって来た。投稿の少し前にはインターネットで preprint も公開した。あのちくさ病院の研究エッセイで描かれているような、結果を盗まれるという恐れを感じたことは一度もない。

変更履歴

  • 2021/6/4 22:20: 公開
  • 2021/6/4 23:30: typo の修正など微調整。神による下読みを acknowledge
  • 2021/6/5 9:00: 追記とコメント返信。カテゴリ設定。

*1:正体や所属はバレバレだけど、本記事では一応固有名詞は伏せるので、コメントする時もそれを酌んでいただけると助かる

*2:この文は掴みのための、いわば「釣り」である。解析の専門家をしていると共同研究が増え共著論文が量産されるし、ソフトウェアの論文は多数引用される。これらの数字を普通の研究者と比べても意味がない

*3:http://twilog.org/biochem_fan/

*4:Nature “Biology needs more staff scientists“ https://www.nature.com/news/biology-needs-more-staff-scientists-1.21991

*5:日本の大学にも昔は高度な技術を持った常勤の技官がいたものだが、独立行政法人化以降そのようなポストはどんどん削減され、今はフラスコ洗いなどの単純労働をするパートタイムの技術補助員ばかりになってしまった

*6:本格的なデータセットは一件 0.5 - 5 TB くらいで、処理に 1 TB くらい必要となり、解析にも4 GPU のノードを断続的に使って 1 - 2 週間かかる

*7:たとえば Research exemption - Wikipedia 参照

*8:Nature "The case for open computer programs" http://rdcu.be/dtCu

*9:新版で修正済のバグについて繰り返し質問が来るのを防ぐため、強制的に最新版を使わせたいかららしい

*10:Nature Computational Science “We need to talk about the lack of investment in digital research infrastructure” https://www.nature.com/articles/s43588-021-00048-5

*11:ネットスラングでいうと、俺 TUEEEE 体験

*12:所属機関には厳密な意味でのパーマネントやテニュアは存在せず、PI であっても 5 年毎の審査で悪い点を取ると退職勧告を受ける

*13:Twitter で自分が「神」と呼んで尊敬している人のこと。本記事も草稿を見ていただいた

*14:なお、結晶化や結晶凍結や回折実験はできる

*15:性的マイノリティのひとつ。人間と繁殖行動をしたいという欲求が欠如する。ちなみに自分の場合、「萌え」は分かるが、性的に露骨な絵には興奮しないどころか拒否感がある

*16:小説家になろうという小説投稿サイトのこと。この記事のタイトルも少しなろう小説を意識した。もっと砕けた感じにして、なろうに投稿しようかという誘惑を感じている。そんなことより英語版のほうが大事なのだけれど

"The History of the Decline and Fall of the Roman Empire" 引用集

Wikiquote に引用されている部分を翻訳。原著は public domain であり、この訳も public domain とします。

Trajan was ambitious of fame; and as long as mankind shall continue to bestow more liberal applause on their destroyers than on their benefactors, the thirst of military glory will ever be the vice of the most exalted characters. Chapter I

トラヤヌス帝は名誉を渇望していた。自身を利する者より脅かす者にかえって多くの喝采を送るという人間の性質が変わらぬかぎり、軍事的栄光を求めることは最高の地位をもつ者にとっての悪徳であり続けるであろう。

liberal: 「自由な」だけでなく、たんに「多い」という意味でも用いられる

The terror of the Roman arms added weight and dignity to the moderation of the emperors. They preserved peace by a constant preparation for war; and while justice regulated their conduct, they announced to the nations on their confines, that they were as little disposed to endure, as to offer an injury. Chapter I

ローマ軍の恐怖は、控えめな皇帝にも重みと尊厳を与えた。常に戦争への準備を備えていることが平和を守った。軍は行動を正義によって律していたが、それと同時に、周辺国家に対して攻撃を加えるつもりはないが讓歩する気もないと伝えていた。

Yet Phoenicia and Palestine will forever live in the memory of mankind; since America, as well as Europe, has received letters from the one, and religion from the other. Chapter I

しかしフェネキアとパレスチナは永久に人類の記憶にとどまるであろう。ヨーロッパのみならずアメリカも、フェネキアから文字を、パレスチナから宗教を受け継いだのだから。

That public virtue which among the ancients was denominated patriotism, is derived from a strong sense of our own interest in the preservation and prosperity of the free government of which we are members. Such a sentiment, which had rendered the legions of the republic almost invincible, could make but a very feeble impression on the mercenary servants of a despotic prince; and it became necessary to supply that defect by other motives, of a different, but not less forcible nature; honour and religion. Chapter I

古代世界において愛国心と呼ばれていた美徳は、自分が所属する自由な政府の存続と反映に対する強い当事者意識に基づく。この感覚は共和国の軍団をほとんど負け知らずにしたが、専制的な王子の下にいる傭兵には大した印象を与えなかったから、その欠如を別の同じくらい強力な動機によって補うことが不可欠であった。つまり、名誉と信仰である。

denominate = call
our = the ancients で良いのか自信がない

The masters of the fairest and most wealthy climates of the globe turned with contempt from gloomy hills, assailed by the winter tempest, from lakes concealed in a blue mist, and from cold and lonely heaths, over which the deer of the forest were chased by a troop of naked barbarians. Chapter I

地球上もっとも穏やかで豊かな気候の地を支配するものたちは、冬の嵐に苦しめられる薄暗い丘陵、青白い霧に包まれた湖、寒く人気のない荒野を見下し、放置した。そのような地では、裸の野蛮人たちが森で鹿を追っていた。

contempt: 蔑み
gloomy: 薄暗い
of the forest: 丘とか湖といってるのに forest なのは謎

ベクトルを転置したものの積について

自明なことだけれど、こういう表記でつまづく人がいるのはもったいないので、ここに明記しておく。

 \mathbf{v} = \begin{pmatrix}v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix},  \mathbf{w} = \begin{pmatrix}w_1 \\ w_2 \\ \vdots \\ w_n \end{pmatrix} とするとき、
 \mathbf{v}^T\mathbf{w} = \begin{pmatrix}v_1 && v_2 && \cdots && v_n \end{pmatrix} \begin{pmatrix}w_1 \\ w_2 \\ \vdots \\ w_n \end{pmatrix}= v_1 w_2 + v_2 w_2 + \cdots + v_n w_n
内積である。一方、
 \mathbf{v}\mathbf{w}^T = \begin{pmatrix}v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix}  \begin{pmatrix}w_1 && w_2 && \cdots && w_n \end{pmatrix} = \begin{pmatrix}v_1 w_1 && v_1 w_2 && \cdots && v_1 w_n \\ v_2 w_1 && v_2 w_2 && \cdots && v_2 w_n  \\ \vdots \\ v_n w_1 && v_n w_2 && \cdots && v_n w_n  \end{pmatrix}
は要素ずつの積を並べた行列である。
この行列の各列は  \mathbf{v} = \begin{pmatrix}v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix} w_i をかけたものに過ぎないから、お互いに定数倍である。したがって、その rank は 1 である。各行についても同じことがいえる。

実装して学ぶデータ処理システム その3 - Kabsch transform の意味

今回は XDS における最大の特徴、Kabsch transform の意味について説明する。論文の 2.3 節に対応する。

Kabsch transform は、goniostat 座標系から reflection 座標系への変換である。これまでに出てきた検出器系や実験室系との変換と違い、この変換は局所的である。局所的というのは、1つ1つの逆格子点ごとに固有の reflection 座標系があって、その点の近傍でしか変換が意味をなさないということだ。数学が得意な人は、多様体における局所座標系の貼りあわせをイメージするかもしれない。ただ、検出器上の1つのピクセルは、最近傍の反射がもつ局所座標系だけに属することになっており(pixel labeling)、局所座標系同士が重なりあうことはないから、多様体よりも単純である。

ある反射 hkl の固有座標系は、逆空間(goniostat 座標系で考えるのがよい)でその反射に対応する格子点を原点とし、基底ベクトル

 \mathbf{e_1} = \frac{\mathbf{S} \times \mathbf{S_0}}{|\mathbf{S} \times \mathbf{S_0}|}
 \mathbf{e_2} = \frac{\mathbf{S} \times \mathbf{e_1}}{|\mathbf{S} \times \mathbf{e_1}|}
 \mathbf{e_3} = \frac{\mathbf{S} + \mathbf{S_0}}{|\mathbf{S} + \mathbf{S_0}|}

によって定義される。1つ目の式は、\mathbf{e_1}\mathbf{S}, \mathbf{S_0} に直交する長さ1のベクトルだと言っている。二つ目の式は 、こうしてできた \mathbf{e_1}\mathbf{S} に直交する長さ1のベクトルが  \mathbf{e_2} だと言っている。どちらも散乱ベクトル \mathbf{S} に直交するから、この2つのベクトルは Ewald 球の接平面上にある。\mathbf{e_3} の向きを考えるために、\mathbf{e_1} との内積を取ると、

 \mathbf{e_1} \cdot \mathbf{e_3} = \frac{(\mathbf{S} \times \mathbf{S_0}) \cdot (\mathbf{S} + \mathbf{S_0})}{|\mathbf{S} \times \mathbf{S_0}||\mathbf{S} + \mathbf{S_0}|} = \frac{(\mathbf{S} \times \mathbf{S_0}) \cdot \mathbf{S} + (\mathbf{S} \times \mathbf{S_0}) \cdot \mathbf{S_0}}{|\mathbf{S} \times \mathbf{S_0}||\mathbf{S} + \mathbf{S_0}|} = 0

となるから、\mathbf{e_1}\mathbf{e_3} は直交している。同様に \mathbf{p^*} = \mathbf{S} - \mathbf{S_0} との内積をとっても、

 \mathbf{p^*} \cdot \mathbf{e_3} = \frac{(\mathbf{S} - \mathbf{S_0}) \cdot (\mathbf{S} + \mathbf{S_0})}{|\mathbf{S} + \mathbf{S_0}|} = \frac{\mathbf{S} \cdot \mathbf{S} + \mathbf{S} \cdot \mathbf{S_0} - \mathbf{S_0} \cdot \mathbf{S} - \mathbf{S_0} \cdot \mathbf{S_0}}{|\mathbf{S} + \mathbf{S_0}|} = 0

となって、こちらも直交している。ここで、内積が可換であることと、|\mathbf{S}| = |\mathbf{S_0}| (Laue 条件) を用いた。

反射座標系の成分のスケールとしては、角度(度)を用いることになっている。長さの単位として角度というのは不思議に感じられるかもしれない。これが可能となるのは、\mathbf{e_1}\mathbf{e_2} は Ewald 球の接平面上にあり、ごく近傍では Ewald 球の表面(曲面)とも同一視できるからである。Ewald 球面上の弧の長さは、半径 |\mathbf{S_0}| = \frac{1}{\lambda}と中心角(ラジアン)をかけたものだから、長さの基準として角度を用いても問題ないのだ。

数式はこのくらいにしておいて、意味について考えよう。検出器上で観察される spot profile は、still shot の場合、次のような影響をうける。

  • Ewald 球の曲率に由来する広がり (高角のほうが大きい)
  • スペクトル幅による広がり (高角のほうが大きい)
  • sensor 厚みによる位置のズレ

振動写真の場合は、さらに次のような影響も加わる。

  • 回転軸から遠い( \rho が大きい)反射は、大きい線速度を持つ

これらを理解するために、まず、逆空間における1つ1つの「反射球」は、一定の大きさを持っていることを思い出そう。1つの単位胞をフーリエ変換したもの、つまり 連続的な molecular transform に無限サイズの格子に由来する逆格子を掛け算したものが理想結晶の逆空間を与える。実際の結晶は有限のサイズを持つから、その shape transform を逆格子点の各点に畳み込んだものとなる。詳しくは◯◯を参照。

一方、検出器上で観測される現象は、#未稿

実装して学ぶデータ処理システム その4 - 座標変換の実際

前回(本記事公開時には未公開)、Kabsch 変換の意味について説明した。今回は、実装上の問題点について述べる。DIALS のレポジトリにある James の文章 が参考になる。

逆空間の一点とKabsch 変換後の反射座標系での一点は、数学的には一対一に対応している。しかし、プログラムとして実装する上では、それぞれを有限の大きさを持ったボクセルの集合として表現するので、多対多の関係になってしまう。つまり、反射座標系の 1 つのボクセルに対して、複数のフレーム上の複数のピクセルが対応しうる。逆に、あるフレームのあるピクセルが、反射座標系では複数のボクセルにまたがることもある。

このような複雑な対応関係を処理するために、XDS は複数の戦略を取ってきた。Kabsch, Wolfgang. "Evaluation of single-crystal X-ray diffraction data from a position-sensitive detector" Journal of Applied Crystallography 21.6 (1988) で述べられている初期のバージョンでは、1 つの検出器ピクセルの値は、反射座標系で近傍の 2 * 2 * 2 = 8 ボクセルに線形補間で配られる。たとえば、検出器ピクセルの中心座標が、プロファイル座標系で (3.2, 2.4, 1.5) に対応するならば、(3, 2, 1) から (4, 3, 2) までの 8 つのボクセルに配るのである。この方法は、反射座標系の grid の刻みが細かくなって、1つの検出器ピクセルがもっと多くのボクセルにまたがるようになると破綻してしまう。

2010 年の論文 Kabsch, Wolfgang. "Integration, scaling, space-group assignment and post-refinement" Acta Crystallographica Section D (2010): 133-144 で説明されているように、新しいバージョンの XDS では、1 つの検出器ピクセルを 5 * 5 = 25 個のサブピクセルに分割して、それぞれを対応するボクセルへ配るようになった。ただし、各ボクセルの間で補間することはしない。この方法でも、1 つの検出器ピクセルが 25 個以上のボクセルにまたがるとうまくいかないはずだが、実用上は問題ないようである(BEAM_DIVERGENCE などをうまく取っている?)。

理論的には、1 つの検出器ピクセルは、反射座標系で凸多面体に対応する。この多面体と交差するボクセルを列挙し、交差する体積を解析的に求めることは、複雑だが可能である。DIALS における XDS アルゴリズムの実装は、この方向で進められていると聞いている。#対応するコードと資料を要確認

XDS では、プロファイル座標系でのボクセル数は NUMBER_OF_PROFILE_GRID_POINTS_ALONG_ALPHA/BETA, NUMBER_OF_PROFILE_GRID_POINTS_ALONG_GAMMA パラメータで設定される。デフォルトは 9 で、最大は 21 だ。これがプロファイル空間でどれだけの幅にマップされるかを決めるのが BEAM_DIVERGENCE と REFLECTING_RANGE である。 BEAM_DIVERGENCE_E.S.D と REFLECTING_RANGE_E.S.D は、三次元正規分布で表される解析的なプロファイルの幅(標準偏差)であり、強い反射のスポット形状から決定される。両側に 3 sigma 取れば正規分布の 99 % をカバーするから、CUT が 2 の場合、 BEAM_DIVERGENCE と REFLECTING_RANGE は 各 E.S.D. の 6 倍あれば十分である。実際には、正規分布よりも広がりがある(over dispersion) かもしれないから、少し多めにとっておいたほうが無難である。実際の XDS がどのような基準で決めているかは論文では明記されていない(邪悪!)が、実は 7 倍らしい。