ActivePapers チュートリアル
ActivePapers チュートリアル この短いチュートリアルでは、以下の方法を示します。
- ActivePaper の内容(コード、ドキュメント、プロットを含む)を検査する
- 計算のパラメータを変更する
- コードを変更する
- 計算を再実行する
- 一から ActivePaper を作成する
このチュートリアルのサンプルファイルは Figshare からダウンロードできます。Figshare サイトの説明文に目を通しておくのも良いでしょう。ファイルが何を行うのか、なぜそのような処理を行うのかを理解する必要はありませんが、興味があれば、関連する論文を参照してください。この論文は、分子動力学シミュレーションの軌跡から、溶液中のタンパク質の並進および回転拡散テンソルを計算する方法について述べたものです。
ダウンロードした ActivePaper ファイルを空のディレクトリにコピーしてください。シェルウィンドウを開き、そのディレクトリに移動します。ls -l と入力すると、以下のような表示が見られるはずです。
-rw-r--r-- 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap
内容の検査
aptool ls はデータセットの長いリストを出力します。始まりは以下の通りです。
code/correlation_functions
code/diffusion_tensor
code/identify_trajectories
code/plots
code/python-packages/fitting
code/python-packages/molecular_structure
code/python-packages/mosaic
code/python-packages/quaternion
code/python-packages/time_series
code/python-packages/units
code/thermal_averages
code/trajectory_processing
data/coordinate_trajectories/rotation_laboratory_frame_1
data/coordinate_trajectories/rotation_laboratory_frame_10
data/coordinate_trajectories/rotation_laboratory_frame_2
では、aptool はどの ActivePaper ファイルを調べればよいかをどのようにして知るのでしょうか?実は、現在のディレクトリに .ap 拡張子を持つファイルが 1 つしかない場合、それが自動的に選択されます。そのため、ActivePaper プロジェクトごとに個別のディレクトリを使用するのが賢明です。
何らかの理由でそれを行いたくない場合は、ActivePaper のファイル名を明示的に指定することができます。
関連: — ブラウザーで直接コーディングするインタラクティブな Python およびデータ サイエンス コース.
aptool ls -p lysozyme_diffusion.ap
aptool ls -l を使用すると、より詳細な情報を取得できます。
2013-06-07/09:13:05 calclet code/correlation_functions
2013-06-07/09:19:48 calclet code/diffusion_tensor
2013-06-07/10:02:29 calclet code/identify_trajectories
2013-06-12/08:03:48 calclet code/plots
2013-06-04/15:42:02 module code/python-packages/fitting
2013-05-02/15:11:53 module code/python-packages/molecular_structure
2013-06-14/15:46:18 reference code/python-packages/mosaic
2013-05-23/11:42:31 module code/python-packages/quaternion
2013-05-27/04:13:09 module code/python-packages/time_series
2013-05-02/15:12:07 module code/python-packages/units
plus lots of more lines like that.
最初の列には、各データセットの最終更新日時が表示されます。2 番目の列には、データセットのタイプが表示されます。上記のリストには、実行可能コードのタイプである calclet と module の 2 つが含まれています。このリストには現れていませんが、3 つ目のタイプとして importlet があります。
module は、Python プログラマーが期待する通り、他の Python コードによってインポートされる Python ソースコードファイルです。calclet と importlet は、ActivePapers が提供するスクリプトの 2 つの変種です。
読者のお気に入り: — ガイド付きターミナルと実際のデータセットを使用したプロジェクトベースのデータ サイエンス パス.
最も一般的なタイプは calclet で、これは権限が制限された Python スクリプトです。含まれている ActivePaper ファイルの外側で I/O(入出力)を行うことはできず、ファイルにもネットワークリソースにもアクセスできません。これらの制限により、再現性が保証され(すべての入力データが ActivePaper 内に存在することが保証される)、ユーザーはバグや悪意のあるコードから保護されます。しかし同時に、calclet を使って ActivePaper にデータをインポートすることはできないことも意味します。そこで登場するのが importlet です。これらはあらゆる Python 機能を使用でき、あらゆるリソースにアクセスできます。つまり、他人の importlet を実行する際は、まず中身を確認すべきだということです。[[Calclets]] ページでは、calclet と importlet の書き方について説明しています。
上記のリストにはもう一つデータセットタイプがあります。reference です。これは、他の ActivePaper ファイル内のデータセットを参照するために使用されます。参照は 2 つの部分で構成されます:ファイルへの参照と、そのファイル内のデータセット名です。ファイル参照は、公開済みファイルの場合は DOI、ローカルファイルの場合はファイル名になります。もちろん、ローカルファイル名は他の人のコンピュータでは意味をなさないので、ローカル参照は importlet と少し似ています。データの由来を文書化しますが、データそのものを利用可能にするわけではありません。
私たちの ActivePaper 内の参照を見てみましょう。
aptool refs
1 つの DOI と 10 のローカル参照が見つかります。
doi:10.6084/m9.figshare.705829
local:lysozyme_spce_rbt_1
local:lysozyme_spce_rbt_10
local:lysozyme_spce_rbt_2
local:lysozyme_spce_rbt_3
local:lysozyme_spce_rbt_4
local:lysozyme_spce_rbt_5
local:lysozyme_spce_rbt_6
local:lysozyme_spce_rbt_7
local:lysozyme_spce_rbt_8
local:lysozyme_spce_rbt_9
DOI は、Figshare にデポジットされた pyMosaic ライブラリ(バージョン 0.1.1)に対応するものです。ローカルファイルは、ActivePaper で解析されるシミュレーション軌跡です。
これらの参照についてさらに詳しい情報を得てみましょう。
aptool refs -v doi:10.6084/m9.figshare.705829
出力例:
links: code/python-packages/mosaic
local:lysozyme_spce_rbt_1 copies: data/center_of_mass data/orientation data/reference_structure data/time
and so on for the nine other input files.
これにより、DOI が宛先ファイルのデータセット code/python-packages/mosaic へのリンクとして使用されている一方、ローカルファイルは ActivePaper 自体にコピーされたデータのソースとして使用されたことがわかります。したがって、コピー参照は単なる文書化のために機能し、参照されたファイルのコピーを手元に持っている必要はありません。
データセットタイプに戻りましょう。aptool ls -l の最初の数行には現れなかったタイプが他にもいくつかあります。残りの行をいくつか見てみましょう。
2013-07-03/12:24:26 text documentation/README
2013-06-14/15:55:08 file documentation/c_rr_diagonals.pdf
2013-06-14/15:55:00 data data/correlation_function_integration_limit
2013-06-14/15:46:47 dummy data/coordinate_trajectories/rotation_laboratory_frame_1
text が何を意味するかはおそらく推測できるでしょう。file は Unix 世界におけるファイルそのものです。つまり、特定の解釈が付随していないバイト列です。後ほど、このようなファイルを抽出する方法をご覧いただきます。
data の意味、特に file とどう違うのかは、それほど自明ではないかもしれません。答えは、data が任意の HDF5 データセットであり、データスペースとデータ型によって特徴づけられる点です。必要であれば配列だと考えても構いません。実際、非常に近い概念です。
最後に dummy ですが、これは存在しないデータセットです。より正確には、「もはや存在しない」データセットです。これは calclet によって生成されましたが、ファイルサイズを削減するために明示的に削除(aptool dummy ... を使用)されたデータセットです。これを検査したい場合、あるいはこれを読み込む calclet のいずれかを実行したい場合は、まず calclet を再実行して再生成する必要があります。
それでは、早速実行してみましょう。
aptool update -v
これにより、ActivePaper 内で更新が必要なすべてのものが更新されます。具体的には、dummy データセットだけでなく、 stale データセット(それを生成した calclet の当前バージョンよりも古いデータセット)も対象です。-v オプションは詳細モードで、どの calclet が、なぜ実行されたかを教えてくれます。しばらく待つ必要があることに注意してください。私のマシンでは、この操作には約 8 分かかります。
ファイルサイズが大幅に増加していることが確認できます。
ls -l
-rw-r--r-- 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap
さらに、以前は dummy だったデータセットが、 теперь実在するデータセットになっています。
aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1
2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1
プロットの抽出
aptool ls -l の完全な出力を見ると、documentation の下にいくつかの PDF ファイルがあることに気づくでしょう。これらを閲覧するには、実ファイルとして抽出する必要があります。
aptool checkout documentation
これにより、HDF5 グループ documentation 内のすべてが、これもまた documentation という名前のローカルディレクトリに抽出されます。ついでに README も取得されます。ActivePaper 内の documentation グループは人間向けのデータ用であり、通常は計算の入力としては使用されません。
もちろん、個々のファイルをチェックアウトすることも可能です。例えば:
aptool checkout documentation/README.txt
checkout コマンドは、ディスク上に既に存在する対応するファイルよりも新しいデータセットのみを抽出します。したがって、抽出したファイルを編集しても、上書きされることはありません。コードを扱う際、すぐにこの動作を目にすることになるでしょう。
コードの抽出と変更
次に、すべてのコードを見てみましょう
本物の大学から証明書を取得しましょう
大学が支援する Python およびデータサイエンス証明書の 1 つのサブスクリプション