データを国立精神衛生研究所データ アーカイブ (NDA) に送信するには、ユーザーはデータが必要な形式に準拠していることを確認するために検証する必要があります。これは、NDA 検証およびアップロード ツールを使用して行われます。さらに、ユーザーは NDA からデータをパッケージ化してダウンロードすることもできます。関連データが S3 からダウンロードされる場合は、一時的なフェデレーション AWS トークンが必要です。 Python パッケージとコマンド ライン クライアントは、ユーザーがプログラムでデータを検証、パッケージ化、送信、ダウンロードできるようにするために開発されました。検証、送信パッケージ、およびデータ送信 Web サービス。
ユーザーがクライアントを使用するには、Python ディストリビューションが必要です。ターミナル/コマンド プロンプトから次のコマンドを実行して、Python がすでにインストールされているかどうかを確認します。
python3 --version
注:
Python 3.4 以降、pip はデフォルトで Python バイナリに含まれています。次のコマンドでバージョンを確認できます。
pip3 --version
pip がインストールされている場合は、バージョン情報が表示されるはずです。そうでない場合は、pip をインストールする必要があります。まず、https://bootstrap.pypa.io/get-pip.py からダウンロードし、次のコマンドを実行してユーザー用にインストールします。
python3 get-pip.py --user
注:
これらの手順は、クライアントを実行するためのセットアップを行うのに役立ちます。
ターミナルまたはコマンド プロンプトに次のコマンドを入力するだけで、nda-tools をインストールできます。
pip install nda-tools
これにより、コマンド ライン スクリプトと必要なパッケージを含む nda-tools パッケージが自動的にインストールされます。
注:
pip install nda-tools --user
python -m NDATools.clientscripts.[NDAtoolcommand]
検証のみに必要なわけではありませんが、パッケージを作成してデータを NDA に送信する場合は、当社のアクティブなアカウントが必要です。これはNDA Webサイトからリクエストできます。 NDA にデータを提供するために必要なものについて詳しくは、こちらをご覧ください。
Keyring は、オペレーティング システムの資格情報マネージャーを利用してユーザーの資格情報を安全に保存および取得する Python パッケージです。
どのオペレーティング システムのユーザーでも、次の方法でパスワードを更新できます。
keyring.set_password('nda-tools', USERNAME, NEW_PASSWORD)
Mac ユーザーはキーチェーンを使用し、Windows ユーザーは認証情報マネージャーを使用してパスワードを更新できます。
キーリングを使用してパスワードを更新するには、次を実行します。
keyring.set_password('nda-tools', 'YOUR_USERNAME', 'NEW_PASSWORD')
,YOUR_USERNAMEとNEW_PASSWORD をNDA ユーザー名と新しいパスワードに置き換えます。詳細については、キーリングのドキュメントを参照してください。
キーリング経由で保存されたエントリがない場合は、パスワードの入力を求められます。認証が成功すると、nda-tools はキーリングを介してパスワードを保存します。その後 nda-tools を使用すると、キーリングからパスワードが自動的かつ安全に取得されます。
Linux ユーザーは、Mac や Windows オペレーティング システムに含まれているようなネイティブの認証情報マネージャーを持っていない可能性があるため、キーリングのバックエンド実装をインストールする必要がある場合があります。キーリング バックエンドが見つからない場合、nda-tools は次のメッセージを出力します。
If there is no backend set up for keyring, you may try pip install secretstorage --upgrade keyrings.alt
Ubuntu ユーザーの場合、
apt-get install -y gnome-keyring
クライアントの実行中に SSL エラーが発生した場合は、pip install pip install requests[secure]
を使用してリクエストの pip インストールを再実行する必要がある場合があることに注意してください。これにより、SSL 接続のサポートが強化されたいくつかの追加パッケージがインストールされます。
検証ツール Python クライアントで使用できるオプションを表示するには、次のコマンドを入力します。
vtcmd -h
または、Download Python クライアントで利用可能なオプションを表示するには、次のように入力します。
downloadcmd -h
クライアントに付属の ~.NDAToolssettings.cfg ファイルには、エンドポイント、ファイル、およびユーザー情報の構成可能なオプションが含まれています。
通常、「エンドポイント」セクションのエントリを変更する必要はありません。ただし、検証結果、ユーザー ログイン、および AWS 認証情報の優先場所を指定して「ファイル」セクションと「ユーザー」セクションを変更することもできます。
引数は位置ではありませんが、最初の引数は検証するファイルのリストである必要があります。
vtcmd -l "Users/[youruser]/Documents/MultipleDataTypes"
"Users/[youruser]/Documents/MultipleDataTypes/Stage_Testing_BigFiles_genomics_sample03.csv"
検証される CSV ファイルへの完全なパスを知っている必要があります。さらに、データにマニフェストや関連ファイル (ゲノミクス ファイル、イメージング ファイルなど) が含まれている場合は、これらのファイルへのフル パスも知っておく必要があり、これをオプションのコマンド ライン引数として入力する必要があります。それ以外の場合、クライアントは、追加のファイルが保存されているディレクトリのリストを入力するように求めるプロンプトを表示します。関連するファイルが AWS にある場合は、バケット、オプションのプレフィックス、および AWS 認証情報をリストすることもできます。
注意:関連ファイルのディレクトリをリストする場合は、csv ファイルにリストされているファイル名までのフォルダーを含めます (ファイル名は含まれません) 。
関連するファイル名が Users/[youruser]/Documents/MultipleDataTypes/data/1G_file.fastq にあり、CSV ファイルに次のようにリストされている場合:
データ/1G_file.fastq
その場合、入力するディレクトリは次のとおりです。
ユーザー/[あなたのユーザー]/Documents/MultipleDataTypes
ディレクトリ名の一部として「data/」フォルダーを含めないでください。
検証を開始するには、ファイルのリスト (現在のディレクトリにない場合はファイル パス) をスペースで区切って入力する必要があります。
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv
データにマニフェスト ファイルが含まれている場合は、マニフェスト ファイルが配置されているディレクトリをスペースで区切って入力する必要があります。
vtcmd submission_data/sample_imagingcollection01.csv -m submission_data/Manifests
関連するファイルがある場合は、そのファイルが存在するディレクトリをスペースで区切って入力します。
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l MultipleDataTypes testdata/with_associated_files
ファイルが現在の作業ディレクトリ以外の場所にある場合は、ファイルへのフル パスを入力する必要があります。
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l Users/[youruser]/Downloads/SubmissionData testdata/with_associated_files
関連ファイルが S3 にある場合は、バケット名、アクセス キー、および秘密キーを含める必要があります。
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -s3 my_bucket -ak XXXXXXXXXXXXXX -sk XXXXXXXXXXXXXX
注:ローカルおよび s3 に保存された関連ファイルをアップロードすることもできます。ローカル ファイルが保存されているディレクトリを必ず含めてください (-l path/to/local/associated/files)
パッケージを作成するには、コマンドライン引数の最後に「-b」を入力します。ユーザー名、AWS 認証情報、コレクション ID、提出物のタイトルと説明を入力することも、後でクライアントからの要求に応じてこの情報を入力することもできます。クライアントは、次の場合まで送信パッケージの構築を開始しません。
パッケージの送信とアップロードが完了すると、送信が成功したことを確認する電子メールが NDA から受信箱に届きます。パッケージのローカル バージョンは~nda-toolsvtcmdsubmission_packageフォルダーに自動的に保存され、NDA サイトのコレクション送信タブに表示されます。
NDA に送信されたすべてのデータに対して QA チェックが実行され、性別、被験者、インタビューの年齢、インタビュー日などのデータ ポイントに不一致がないかどうかが確認されます。データに問題が見つかった場合は、NDA によって見つかったエラーのレポートとともに、提出物を作成したユーザーに電子メールが送信されます。
提出用の NDA 内のデータを修正するには、元の提出でエラーが含まれていたすべての CSV ファイルを置き換える必要があります。これを行うには、次のことを行う必要があります。
たとえば、ID 123456 の元の送信が file1.csv、file2.csv、file3.csv で構成されており、file1.csv と file2.csv を修正する必要がある場合、QA エラーを修正するコマンドは次のようになります。
vtcmd -b -rs 123456 corrected-file1.csv corrected-file2.csv
file3.csv は、その特定のファイルに変更を加える必要がないため、コマンドから除外されていることに注意してください。
このコマンドは送信に対して 1 回実行する必要があり、データの修正を含むすべてのファイルを含める必要があることに注意してください。つまり、correct-file1.csv に対して vtcmd を 1 回実行し、correct-file2.csv に対してもう 1 回実行しないでください。コマンドの実行時に必要な変更を含むファイルを誤って省略してしまった場合は、ヘルプデスク ([email protected]) までご連絡ください。
また、csv ファイルには、最初に送信されたすべてのデータが含まれている必要があることにも注意してください。つまり、 CSV に元々 800 行があり、変更する必要があるのは 3 行だけである場合、 vtcmd の実行時には、変更を含む 3 行だけでなく、800 行すべてが CSV に存在する必要があります。 CSV から除外されたデータは、コレクションのデータ期待値に反映されます。
このスクリプトは、最初の送信時にアップロードされた関連ファイルをアップロードしません。関連ファイルが修正された CSV ファイルに含まれているが、元の送信時の CSV ファイルには含まれていない場合にのみ、関連ファイルをアップロードする必要があります。これにより、関連ファイルのアップロードに数日かかる可能性があるゲノムおよびイメージングの提出時の時間が節約されます。
データをダウンロードするには、downloadcmd コマンドを使用する必要があります。これにより、NDA パッケージ化されたデータまたはデータのサブセットをダウンロードするためのいくつかのオプションが提供されます。すべてのファイルは~nda-toolsdownloadcmdpackagesフォルダーに自動的にダウンロードされますが、コマンド ラインで新しいディレクトリを指定してファイルを保存することでこれを変更できます。注意:データの最大転送制限は1 か月あたり 20 TB です。
パッケージ化されたすべてのデータは、パッケージ ID を渡すことでダウンロードできます。
downloadcmd -dp
注:関連ファイルを含む NDA パッケージを作成しない限り、関連ファイルはダウンロードされません。関連ファイルをダウンロードする手順は以下のとおりです。
downloadcmd コマンドには、.txt ファイル内のデータをダウンロードするための 2 つのオプションがあります。 NDA パッケージをダウンロードすると、メタデータ .txt ファイルが見つかり、その多くはデータ メジャーを表します。ゲノミクス、イメージング、およびその他の関連データは、これらの .txt ファイルに s3 リンクとしてリストされます。 .txt ファイル内のすべての s3 リンクをダウンロードしたい場合は、-ds フラグを渡すことでそのように指定できます。
downloadcmd -dp
NDA パッケージとすべてのゲノミクス、イメージング、およびその他の関連データをカスタム .txt ファイルに保存された s3 リンクのリストとしてダウンロードする場合は、-t フラグを使用してダウンロードできます。
downloadcmd -dp
downloadcmd コマンドを使用すると、NDA パッケージを S3 バケットに直接ダウンロードできます。
downloadcmd -dp
これは、次の 2 つの理由により、NDA からデータをダウンロードする場合に推奨される方法です。
データが AWS の外に出ないため、別の S3 バケットへのダウンロードは大幅に高速になります。
これにより、NDA からバケットに無制限の量のデータを直接ダウンロードできるようになります。
S3 から S3 へのコピー操作を成功させるには、プログラム引数として指定された S3 バケットarn:aws:sts::618523879050:federated-user/
の PUT オブジェクト操作を許可するように設定されている必要があります。ここで、
はNDAユーザー名です。
非公開バケットの場合、バケット ポリシーを更新する必要があります。
をバケット名に置き換えた後、必要な権限を許可するには、次のステートメントを追加する必要があります。
{
"Sid": "AllowNDAUpload",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:federated-user/"
},
"Action": "s3:PutObject*",
"Resource": "arn:aws:s3:::/*"
}
これを追加するには、会社/機関の IT 部門に電子メールを送信する必要がある場合があります。
注: S3 バケットが顧客管理の KMS キーで暗号化されている場合は、バケットの暗号化に使用されるキーのポリシーも更新する必要があります。
次のステートメントをキーのポリシーに追加する必要があります。
{
"Sid": "EnableUseForFederatedNDA",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:user/DownloadManager"
},
"Action": ["kms:GenerateDataKey","kms:Decrypt"],
"Resource": "*"
}
この検証ツール Python クライアントに問題がある場合、またはフィードバック/コメントを提供したい場合は、[email protected] までメールでお問い合わせください。