2022年6月18日土曜日

ローカルな環境でgitを使って解析スクリプトを管理する

データ解析のscript管理

NGS等から来るデータの解析をするとき、よく実行する解析は大体決まっている。これらに使うスクリプトをどのように管理するのか、これまでにもその時々で悩ましい問題だった。githubを使った管理を導入しようと思ってアカウントを作り検討していた時もあったが、その時の環境と管理しなければならないスクリプトの数などを考えて、それほど効率化も出来なさそうだし逆に煩雑になりそうだったのでやめたことがあった。

その後はホームに雛形になるようなスクリプトを大雑把な解析ごとにまとめて置いておき、都度コピーして使うようなやり方をしていたが、最近それでは適切にバージョン管理できない弊害が目立つようになってきた。

現在の使用状況としては、(1) サーバー、複数のローカルなどいくつかの環境で解析を実行している、(2) 異なる事案で同じようなスクリプトを使い回している、(3) 他方、その事案かぎりのスクリプトも管理したい、(3) 複数人で開発するような共同作業はあまり想定されないが、他の人にスクリプトを渡したり見せたりできる方が良い、といった感じだ。今回まず取り組んだのはこのうちの(3)と、一部(2)であり、gitのコマンドを使ってローカルにバージョン管理を始めた。


アプリケーションごとにgitリポジトリでローカル管理

gitはgithubなどのサービスと一緒に使っている印象が強いが、gitのコマンドをCUI環境だけで使うことも当然できる。自分のスクリプト管理をより厳格にすることが当面の目的なので、まずローカルだけでgitを使用することにした。

基本的な使い方としては、アプリケーションごとにリポジトリを作り、解析用スクリプトを書いていく。何度も実行するアプリケーションの場合、リモートリポジトリになるフォルダをローカルなPCの中に作って、そこからgit cloneするようにすることで、バージョン管理されたスクリプトを事案ごとに簡単に準備することができる。


例えば、ChIP-seqで使うスクリプトをまとめたリモートリポジトリを作る。.gitが後ろにつくディレクトリを作成して、git init --bare --sharedを実行。これは、リモートリポジトリになる。

(base) tk$ mkdir chipseq.git

(base) tk$ cd chipseq.git/

(base) tk$ git init --bare --shared


Initialized empty shared Git repository in /Users/tk/ana/chipseq.git/


ローカル側のフォルダ(workdir)で、git initを実行する。その後、リモートリポジトリの登録をする。

(base) tk$ cd workdir

(base) tk$ git init

Initialized empty Git repository in /Users/tk/projects/workdir/.git/

(base) tk$ git remote add origin '/Users/tk/ana/chipseq.git/'


これで、登録したリモートリポジトリに対してpushができる。

(base) tk$ git push origin master


chipseq.gitから、cloneもできる。これで、同じローカルPCの中でだがgit cloneでコピーを作ることができる。

(base) tk$ cd workdir2

(base) tk$ git clone /Users/tk/ana/chipseq.git


このように、ローカルの中だけの管理になるが、ある程度スクリプトのバージョンを管理し、複数案件でも再利用もできると思われる。他のPCやサーバーも含めて管理していきたいときは、Github等のサービスを利用する方が便利だろう。

Rerefence







2022年6月15日水曜日

ヒト遺伝子プールとミームプール

昨日、遺伝統計学のテキストを読んでいて、補講的な部分が興味深かった。文明の発展に伴って、ヒト集団は増大を続けている。これは、集団中に非常に頻度が低い突然変異が多数存在する状態になっていることを示唆している。人の数が増えるのだから突然変異の総数は増えるはずだ。一方、集団が膨張するということは、遺伝的浮動だけで対立遺伝子頻度が上昇し集団に固定するということが起こる可能性は、(一つ一つの変異にとって)とても小さくなっていく。こういった状態でヒト集団のゲノムにはどのような進化的力が働くのか?

有効集団サイズが大きくなるとき、遺伝的浮動の力は相対的に弱くなり、変異に対する自然淘汰の力が強くなることが考えられる。ただ、ヒト集団が他と異なるのは、医療や食生活、居住空間の発達のため、動物としてのヒトへの自然淘汰の力が弱くなっていることだという。

こうした中で自然淘汰が弱められると、有利な突然変異もなかなか頻度を挙げず、 有害突然変異だけが蓄積されているので、「遺伝子プールの劣化」が起こる可能性がある。稀なバリアントとして存在する突然変異が大量に集団の中にたゆたっているような状態だろうか。

ではこのまま快適状態が続けは、人類集団の遺伝子プールはどんどん悪くなっていくのだろうか?本の著者はCrow (1997)やLynch (2010)の見方に対して、WHOにより行われた天然痘根絶計画を例として挙げる。計画により実際には自然淘汰のコストを払わずに、抵抗性アレルが人類集団に固定したのとおなじ効果がもたらされたとし、もはや天然痘ウィルスへの抵抗性という点で言えば「支払いは猶予ではなく完全に免除されたのだ」と記している。

人類は残酷な自然淘汰のコスト(適応的でないアレルの除去、これは該当するアレルを持つ人が淘汰されることを意味するだろう)を払わずに、「ミーム」として人類に有益な情報を伝達することで、様々な(遺伝子プールに対する)自然淘汰の圧力を無効にしながら人類集団(あるいは現代社会)を存続させているのだろうか。遺伝子プールと並び立ち、相互作用するような「ミームプール」を想定するとき、従来の遺伝子プールの劣化の議論は成り立たなくなるのかもしれない(原文 2019/12/12. 修正2022/6/15)。

追記:パンデミック後に再考する(2022.6.15)

元の文章を初めて書いたのは19年の12月だった。その後年末から20年初めにかけて世界的に急速な動きが生じた。新型コロナウィルスのパンデミックが起き、それがモデルナやファイザーといった製薬企業が開発したワクチンによって(少なくとも先進国において)制圧されていく様子をリアルタイムに経験した。まさに、ミームプールにライフサイエンスの成果が急速に広がったことになると思う。

テキストの著者は、11.3 その他の問題(p238)で、
「人類は長期にわたる定常小集団としての歴史を反映した低い遺伝的多様性しかもたない反面、最近の人口増加は感染症の流行の可能性を増加させている。人口密度の低い過去にはエンデミックであった感染症が、パンデミックを起こす危険性は無視できない。このような問題は、人類集団の遺伝的多様性の側面から、定量的に議論される価値があるだろう。」
と記している。

新型コロナウィルスと人類集団の遺伝的多様性については、GWASを用いた研究など、多数の発表がなされていると思う。これらの研究成果については、今後の新たな感染症の流行も考えられるなか、科学や医療の世界にとどまらずに広く市井で共有され議論されるのが望ましいのではないか。


Reference

Tamiya, Ueki, Komori (2015) Genetic Statistics in Genomic medicine