Pythonバイブコーディング講座 — Part 5(最終回)
Zenodo・GitHub にアップロードする
シリーズ最終回です。Part 4 で requirements.txt を作り、環境の再現性を確保しました。最後の仕上げとして、解析パッケージ一式を Zenodo・GitHub などにアップロードし、論文と一緒に公開する方法を解説します。この公開によって、第三者は論文に付けたリンクから解析コードと環境にアクセスできます。図表をその場で再現することも可能です。PLOS ONE・Nature 系列誌・eLife などをはじめ、データ・コードの公開を求める雑誌は近年急速に増えています。Field Crops Research などの農学系の雑誌でも、一般的な方針になりつつあります。
実装手順に入る前に、「いつ」データやコードを公開するかを必ず確認してください。データ・コードを早すぎるタイミングでオープンにすると、先取権(プライオリティ)を失う、あるいは他者に先に論文化されるといったリスクがあります。
原則:データやコードのオープン公開は、査読論文として正式にパブリッシュされた後に行うのが最も安全です。 プレプリントを先に出しておけば発表日(タイムスタンプ)の確保にはなりますが、プレプリント段階での公開にもまだリスクが残ります(査読中に他者が同種の解析を発表する可能性、データ二次利用の管理の難しさなど)。論文受理/パブリッシュ後にPublicに切り替えるのが、研究者個人の利益と研究公開のバランスを取るうえで現実的な選択です。
投稿〜査読中の運用は次の通りです。
雑誌側のポリシーで「投稿時にデータ公開が必須」となっている場合は、投稿要領に従ってください。多くの雑誌は「査読中は査読者リンクで対応可、パブリッシュ時にPublic化」を許容しています。事前にエディターに確認すれば確実です。
公開する前に、フォルダの構成をきれいに整理しておきます。理想的な構成例は次のとおりです。
my_first_analysis/
├── data/
│ └── sample_data.xlsx # 生データ
├── notebooks/
│ └── analysis.ipynb # 解析スクリプト
├── results/
│ ├── scatter.png # 出力された図
│ └── statistics.csv # 出力された数値
├── requirements.txt # 環境再現用
├── README.md # 使い方の説明
└── .gitignore # 除外ファイルの指定
※ .venv/ は .gitignore で除外(公開しない)
生データ・解析コード・結果を別フォルダに分けて整理すると、第三者にも構造が一目で伝わります。LLMにフォルダ構造を整理してほしいと頼むのも有効です。
生データに被験者情報など個人を特定できる情報が含まれる場合は、公開可能な形に匿名化・加工してから公開してください。倫理審査の同意範囲外のデータを公開しないよう注意してください。
研究データ・コードの公開先には、目的や分野によって複数の選択肢があります。本講座では Zenodo + GitHub の組み合わせを推奨します。ただし、ほかの選択肢も知っておくと、所属機関や雑誌の指定に柔軟に対応できます。
欧州CERNが運営する研究データのアーカイブサービス。アップロードすると DOI が発行される。zenodo.org
世界最大のコード共有・バージョン管理プラットフォーム。共同編集や継続更新に強い。github.com
研究データ専用のリポジトリ。Springer Nature 系雑誌と連携。figshare.com
米国Center for Open Scienceが運営。プロジェクト全体の管理に向く。osf.io
Harvard大学発のオープンソース。各機関が独自に運用するケースも。dataverse.org
分野によっては専用リポジトリの利用が推奨される。
投稿先雑誌の指定や、所属機関のポリシーに従って選択してください。本講座のおすすめは「Zenodo + GitHub」の組み合わせです。GitHubで継続更新しつつ、論文公開のタイミングでGitHubのリポジトリをZenodoに連携させてDOIを発行します(後述)。
GitHubへのアップロードは、本サイトの別記事「研究者のためのポートフォリオサイト構築・公開ガイド」で解説した GitHub Desktop の使い方とほぼ同じ手順で完了します。流れを簡単に示します。
my-first-analysis、Public)これで https://github.com/あなたのユーザー名/my-first-analysis という公開URLができます。誰でもこのURLから「Code → Download ZIP」でフォルダをダウンロードできます。
論文 Appendix に記載するURLとしては、永続性と引用のしやすさから Zenodo の DOI がおすすめです。GitHub と連携すれば、半自動で DOI を発行できます。
my-first-analysis)の右側のスイッチを ON にするv1.0)とタイトルを入力して「Publish release」発行されたDOIは 10.5281/zenodo.XXXXXXXX という形式で、あなたのコードと環境のスナップショットに永続的に紐付きます。論文が撤回されない限り、世界中からアクセスできます。
論文の Methods セクション、もしくは Data Availability Statement や Code Availability Statement に、次のような形でリンクを書きます。
The Python code and processed data used to generate all figures and tables in this study are openly available at Zenodo (DOI: 10.5281/zenodo.XXXXXXXX) and GitHub (https://github.com/yourname/my-first-analysis). The analysis was performed using Python 3.12 with the libraries listed in requirements.txt.
本研究のすべての図表は、公開リポジトリ(DOI: 10.5281/zenodo.XXXXXXXX、GitHub: https://github.com/yourname/my-first-analysis)に格納されたPythonスクリプトにより再現可能である。解析には Python 3.12 および requirements.txt に記載のライブラリを使用した。
雑誌によって書き方の指定があるため、必ず投稿要領を確認してください。多くの場合、「Data Availability」「Code Availability」という独立したセクションが用意されています。
論文公開後も、解析を改良したりデータを追加したりすることはよくあります。GitHub と Zenodo の連携を続ける際の流れは、次のとおりです。
論文ですでに古いDOIを引用している場合でも問題ありません。Zenodo は「Concept DOI(最新版を指す)」と「Version DOI(特定の版を指す)」を区別して発行します。そのため、両方を状況に応じて使い分けられます。
全5パートを通して、Pythonの環境構築から、LLMを活用したバイブコーディング、再現性の確保、そして論文公開時の運用までを学んでいただきました。
ここから先は、実際のあなたの研究データで、ChatGPTと一緒に解析を進めていく実践あるのみです。エラーが出てもLLMに相談すれば必ず解決策が見つかります。再現性のある研究、コードを共有する研究文化に、ぜひ仲間入りしてください。
質問・感想・改善提案は、Contact(tomoakiyamaguchirice@gmail.com)からお気軽にお寄せください。