국립 정신 건강 데이터 아카이브(NDA) 연구소에 데이터를 제출하려면 사용자는 데이터가 필수 형식을 준수하는지 확인해야 합니다. 이는 NDA 검증 및 업로드 도구를 사용하여 수행됩니다. 또한 사용자는 NDA에서 데이터를 패키지하고 다운로드할 수도 있습니다. 관련 데이터를 S3에서 다운로드하는 경우 임시 연동 AWS 토큰이 필요합니다. 사용자가 프로그래밍 방식으로 데이터를 검증, 패키징, 제출 및/또는 다운로드할 수 있도록 Python 패키지와 명령줄 클라이언트가 개발되었습니다. 검증, 제출 패키지 및 데이터 제출 웹 서비스.
사용자가 클라이언트를 사용하려면 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 웹사이트에서 요청할 수 있습니다. 여기에서 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 사용자 이름 및 새 비밀번호로 바꾸세요. Keyring Documentation에서 자세한 내용을 읽을 수 있습니다.
키링을 통해 저장된 항목이 없으면 비밀번호를 입력하라는 메시지가 표시됩니다. 인증이 성공하면 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
우분투 사용자의 경우,
apt-get install -y gnome-keyring
클라이언트를 실행할 때 SSL 오류가 발생하면 SSL 연결을 더 많이 지원하는 추가 패키지를 설치하는 pip install pip install requests[secure]
사용하여 요청의 pip 설치를 다시 실행해야 할 수도 있습니다.
유효성 검사 도구 Python 클라이언트에 사용할 수 있는 옵션을 보려면 다음 명령을 입력합니다.
vtcmd -h
또는 Python 다운로드 클라이언트에 사용 가능한 옵션을 보려면 다음을 입력하십시오.
downloadcmd -h
클라이언트와 함께 제공되는 ~.NDAToolssettings.cfg 파일에는 엔드포인트, 파일 및 사용자 정보에 대해 구성 가능한 옵션이 포함되어 있습니다.
일반적으로 'Endpoints' 섹션의 항목을 변경할 필요가 없습니다. 그러나 검증 결과, 사용자 로그인 및 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
그러면 입력할 디렉터리는 다음과 같습니다.
사용자/[사용자]/문서/다중 데이터 유형
디렉터리 이름의 일부로 '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가 명령에서 제외됩니다.
이 명령은 제출을 위해 한 번 실행되어야 하며 데이터 수정 사항이 포함된 모든 파일을 포함해야 합니다 . 즉, Corrected-file1.csv에 대해 vtcmd를 한 번 실행하고 Corrected-file2.csv에 대해 한 번 더 실행하지 마십시오. 명령을 실행할 때 필요한 변경 사항이 포함된 파일을 실수로 누락한 경우 [email protected]로 헬프데스크에 문의하세요.
또한 csv 파일에는 원래 제출된 모든 데이터가 포함되어야 합니다. 즉 , csv에 원래 800개의 행이 있고 3개의 행만 변경해야 하는 경우 vtcmd를 실행할 때 변경 사항이 포함된 3개의 행뿐만 아니라 800개의 행이 모두 csv에 있어야 합니다 . csv에서 제외된 모든 데이터는 컬렉션의 데이터 예상 수치에 반영됩니다.
스크립트는 원래 제출 중에 업로드된 관련 파일을 업로드하지 않습니다. 관련 파일이 수정된 csv 파일에는 나타나지만 원래 제출물의 csv 파일에는 나타나지 않는 경우에만 관련 파일을 업로드하면 됩니다. 이를 통해 관련 파일을 업로드하는 데 며칠이 걸릴 수 있는 게놈 및 이미징 제출 중에 시간이 절약됩니다.
데이터를 다운로드하려면 downloadcmd 명령을 사용해야 합니다. 이는 NDA 패키지 데이터 또는 데이터 하위 집합을 다운로드할 수 있는 여러 옵션을 제공합니다. 모든 파일은 ~nda-toolsdownloadcmdpackages 폴더에 자동으로 다운로드되지만 명령줄에서 파일을 저장할 새 디렉터리를 지정하여 이를 변경할 수 있습니다. 참고: 최대 데이터 전송 한도는 월 20TB입니다.
패키지 ID를 전달하여 모든 패키지 데이터를 다운로드할 수 있습니다.
downloadcmd -dp
참고: 관련 파일이 포함된 NDA 패키지를 만들지 않는 한 관련 파일을 다운로드하지 않습니다. 관련 파일을 다운로드하는 단계는 다음과 같습니다.
downloadcmd 명령에는 .txt 파일 내의 데이터를 다운로드하기 위한 두 가지 옵션이 있습니다. NDA 패키지를 다운로드한 경우 메타데이터 .txt 파일을 찾을 수 있으며 그 중 대부분은 데이터 측정값을 나타냅니다. 유전체학, 이미징 및 기타 관련 데이터는 이러한 .txt 파일에 s3 링크로 나열됩니다. .txt 파일의 모든 s3 링크를 다운로드하려면 -ds 플래그를 전달하여 이를 나타낼 수 있습니다.
downloadcmd -dp
NDA 패키지와 모든 유전체학, 이미징 및 기타 관련 데이터를 사용자 정의 .txt 파일에 저장된 s3 링크 목록으로 다운로드하려면 -t 플래그를 사용하면 됩니다.
downloadcmd -dp
downloadcmd 명령을 사용하면 NDA 패키지를 S3 버킷에 직접 다운로드할 수 있습니다.
downloadcmd -dp
이는 다음 두 가지 이유로 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]로 이메일을 보내주세요.