Um Daten an das National Institute of Mental Health Data Archives (NDA) zu übermitteln, müssen Benutzer ihre Daten validieren, um sicherzustellen, dass sie dem erforderlichen Format entsprechen. Dies erfolgt mithilfe des NDA-Validierungs- und Upload-Tools. Darüber hinaus können Benutzer auch Daten von NDA verpacken und herunterladen. Wenn die zugehörigen Daten von S3 heruntergeladen werden, sind temporäre föderierte AWS-Token erforderlich. Es wurden ein Python-Paket und Befehlszeilen-Clients entwickelt, mit denen Benutzer Daten programmgesteuert validieren, verpacken, übermitteln und/oder herunterladen können. Webdienste für Validierung, Übermittlungspaket und Datenübermittlung.
Der Benutzer benötigt eine Python-Distribution, um den Client verwenden zu können. Führen Sie Folgendes über ein Terminal/eine Eingabeaufforderung aus, um festzustellen, ob Python bereits installiert ist:
python3 --version
Hinweise:
Seit Python 3.4 ist pip standardmäßig in der Python-Binärdatei enthalten. Sie können die Version überprüfen mit:
pip3 --version
Wenn pip installiert ist, sollten Versionsinformationen angezeigt werden. Wenn nicht, sollten Sie pip installieren. Laden Sie es zunächst von https://bootstrap.pypa.io/get-pip.py herunter und führen Sie dann Folgendes aus, um es für Ihren Benutzer zu installieren.
python3 get-pip.py --user
Hinweise:
Diese Anweisungen helfen Ihnen bei der Einrichtung für die Ausführung des Clients.
Geben Sie einfach den folgenden Befehl in Ihr Terminal oder Ihre Eingabeaufforderung ein, um nda-tools zu installieren:
pip install nda-tools
Dadurch wird das NDA-Tools-Paket automatisch installiert, einschließlich der Befehlszeilenskripts und erforderlichen Pakete.
Hinweise:
pip install nda-tools --user
python -m NDATools.clientscripts.[NDAtoolcommand]
Obwohl dies nicht ausschließlich zur Validierung erforderlich ist, müssen Sie über ein aktives Konto bei uns verfügen, wenn Sie ein Paket erstellen und Ihre Daten an die NDA übermitteln möchten. Dies kann auf der NDA-Website angefordert werden. Hier erfahren Sie mehr darüber, was für die Übermittlung von Daten an die NDA erforderlich ist.
Keyring ist ein Python-Paket, das den Anmeldeinformationsmanager des Betriebssystems nutzt, um Benutzeranmeldeinformationen sicher zu speichern und abzurufen.
Für Benutzer eines beliebigen Betriebssystems kann das Passwort wie folgt aktualisiert werden:
keyring.set_password('nda-tools', USERNAME, NEW_PASSWORD)
Mac- und Windows-Benutzer können den Schlüsselbund bzw. den Anmeldeinformations-Manager verwenden, um ihre Passwörter zu aktualisieren.
Um Ihr Passwort mit Schlüsselbund zu aktualisieren, führen Sie Folgendes aus:
keyring.set_password('nda-tools', 'YOUR_USERNAME', 'NEW_PASSWORD')
,Ersetzen Sie YOUR_USERNAME und NEW_PASSWORD durch Ihren NDA-Benutzernamen und Ihr neues Passwort. Weitere Informationen finden Sie in der Keyring-Dokumentation.
Sollten Sie keine Einträge über den Schlüsselbund gespeichert haben, werden Sie zur Eingabe des Passwortes aufgefordert. Bei erfolgreicher Authentifizierung speichert nda-tools Ihr Passwort per Schlüsselbund. Bei späterer Nutzung von NDA-Tools wird das Passwort automatisch und sicher vom Schlüsselbund abgerufen.
Linux-Benutzer müssen möglicherweise eine Backend-Implementierung des Schlüsselbunds installieren, da sie möglicherweise nicht über einen nativen Anmeldeinformationsmanager verfügen, wie er in den Betriebssystemen Mac und Windows enthalten ist. Wenn das Schlüsselring-Backend fehlt, geben nda-tools die folgende Meldung aus:
If there is no backend set up for keyring, you may try pip install secretstorage --upgrade keyrings.alt
Für Ubuntu-Benutzer:
apt-get install -y gnome-keyring
Bitte beachten Sie, dass Sie, wenn Sie beim Ausführen des Clients auf SSL-Fehler stoßen, möglicherweise die pip-Installation von Anforderungen mit pip install pip install requests[secure]
erneut ausführen müssen, wodurch einige zusätzliche Pakete mit mehr Unterstützung für SSL-Verbindungen installiert werden.
Geben Sie den folgenden Befehl ein, um die für den Validation Tool Python-Client verfügbaren Optionen anzuzeigen:
vtcmd -h
Oder geben Sie Folgendes ein, um die für den Download-Python-Client verfügbaren Optionen anzuzeigen:
downloadcmd -h
Die mit dem Client bereitgestellte Datei ~.NDAToolssettings.cfg enthält konfigurierbare Optionen für Endpunkte, Dateien und Benutzerinformationen.
Normalerweise müssen Sie die Einträge im Abschnitt „Endpunkte“ nicht ändern; Möglicherweise möchten Sie jedoch die Abschnitte „Dateien“ und „Benutzer“ mit bevorzugten Speicherorten für Validierungsergebnisse, Benutzeranmeldung und AWS-Anmeldeinformationen ändern.
Obwohl Argumente nicht positionell sind, sollte das erste Argument die Liste der zu validierenden Dateien sein.
vtcmd -l "Users/[youruser]/Documents/MultipleDataTypes"
"Users/[youruser]/Documents/MultipleDataTypes/Stage_Testing_BigFiles_genomics_sample03.csv"
Es ist erforderlich, dass Sie den vollständigen Pfad zu den zu validierenden CSV-Dateien kennen. Wenn Ihre Daten außerdem Manifeste und/oder zugehörige Dateien (z. B. Genomdateien, Bilddateien usw.) enthalten, müssen Sie auch den vollständigen Pfad zu diesen Dateien kennen, der als optionales Befehlszeilenargument eingegeben werden sollte. Andernfalls werden Sie vom Client aufgefordert, eine Liste mit Verzeichnissen einzugeben, in denen zusätzliche Dateien gespeichert sind. Sie können auch einen Bucket, ein optionales Präfix und Ihre AWS-Anmeldeinformationen auflisten, wenn sich die zugehörigen Dateien in AWS befinden.
Bitte beachten Sie: Geben Sie beim Auflisten des Verzeichnisses für zugehörige Dateien den Ordner bis zum in der CSV-Datei aufgeführten Dateinamen , jedoch nicht einschließlich, an.
Wenn sich der zugehörige Dateiname in Users/[IhrBenutzer]/Documents/MultipleDataTypes/data/1G_file.fastq befindet und in Ihrer CSV-Datei wie folgt aufgeführt ist:
data/1G_file.fastq
Dann lautet das Verzeichnis, das Sie eingeben:
Benutzer/[IhrBenutzer]/Dokumente/MultipleDataTypes
Sie sollten den Ordner „data/“ nicht als Teil des Verzeichnisnamens angeben.
Um die Validierung zu starten, müssen Sie eine Liste von Dateien (oder einen Dateipfad, wenn dieser nicht im aktuellen Verzeichnis liegt) eingeben, getrennt durch ein Leerzeichen:
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv
Wenn Ihre Daten Manifestdateien enthalten, müssen Sie die Verzeichnisse, in denen sich die Manifestdateien befinden, durch ein Leerzeichen getrennt eingeben:
vtcmd submission_data/sample_imagingcollection01.csv -m submission_data/Manifests
Wenn zugehörige Dateien vorhanden sind, geben Sie die Verzeichnisse ein, in denen sie gefunden werden, getrennt durch ein Leerzeichen:
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l MultipleDataTypes testdata/with_associated_files
Wenn sich die Dateien an einem anderen Ort als dem aktuellen Arbeitsverzeichnis befinden, müssen Sie den vollständigen Pfad zu den Dateien eingeben:
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l Users/[youruser]/Downloads/SubmissionData testdata/with_associated_files
Wenn sich Ihre zugehörigen Dateien in S3 befinden, müssen Sie den Bucket-Namen, den Zugriffsschlüssel und den geheimen Schlüssel angeben.
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -s3 my_bucket -ak XXXXXXXXXXXXXX -sk XXXXXXXXXXXXXX
Hinweis: Sie können auch zugehörige Dateien hochladen, die lokal und in s3 gespeichert sind. Stellen Sie einfach sicher, dass Sie das Verzeichnis angeben, in dem die lokalen Dateien gespeichert sind (-l Pfad/zu/local/associated/files).
Um ein Paket zu erstellen, geben Sie „-b“ am Ende Ihres Befehlszeilenarguments ein. Sie können auch Ihren Benutzernamen, Ihre AWS-Anmeldeinformationen, Ihre Sammlungs-ID sowie den Titel und die Beschreibung Ihrer Einreichung eingeben oder diese Informationen später eingeben, wenn Sie vom Kunden dazu aufgefordert werden. Der Kunde beginnt erst dann mit der Erstellung des Übermittlungspakets, wenn:
Sobald die Übermittlung und der Upload des Pakets abgeschlossen sind, erhalten Sie von NDA eine E-Mail in Ihrem Posteingang, die bestätigt, dass Ihre Übermittlung erfolgreich war. Eine lokale Version des Pakets wird automatisch im Ordner ~nda-toolsvtcmdsubmission_package gespeichert und ist auf der Registerkarte „Sammlungsübermittlung“ auf der NDA-Site zu finden.
Nach der Übermittlung an die NDA wird eine QS-Prüfung aller Daten auf Inkonsistenzen bei Datenpunkten wie Geschlecht, Subjeckey, Alter des Interviews und Datum des Interviews durchgeführt. Wenn Probleme mit den Daten festgestellt werden, wird eine E-Mail an die Benutzer gesendet, die die Übermittlung erstellt haben, zusammen mit einem Bericht über die von NDA gefundenen Fehler.
Um die Daten in der NDA für Ihre Einreichung zu korrigieren, müssen Sie alle CSV-Dateien ersetzen, die in Ihrer ursprünglichen Einreichung Fehler enthielten. Dazu müssen Sie:
Wenn die ursprüngliche Übermittlung mit der ID 123456 beispielsweise aus Datei1.csv, Datei2.csv und Datei3.csv bestand und Korrekturen an Datei1.csv und Datei2.csv vorgenommen werden mussten, sieht der Befehl zum Beheben von QA-Fehlern wie folgt aus:
vtcmd -b -rs 123456 corrected-file1.csv corrected-file2.csv
Beachten Sie, dass file3.csv vom Befehl ausgeschlossen ist, da an dieser bestimmten Datei keine Änderungen vorgenommen werden mussten.
Bitte beachten Sie, dass dieser Befehl einmal für eine Übermittlung ausgeführt werden sollte und alle Dateien umfassen sollte, die Korrekturen an Daten enthalten . Das heißt, führen Sie vtcmd nicht einmal für „corrected-file1.csv“ und ein weiteres Mal für „corrected-file2.csv“ aus. Wenn Sie beim Ausführen des Befehls versehentlich Dateien weglassen, die notwendige Änderungen enthalten, wenden Sie sich bitte an den HelpDesk unter [email protected].
Beachten Sie außerdem, dass die CSV-Dateien alle ursprünglich übermittelten Daten enthalten sollten. Das heißt , wenn eine CSV ursprünglich 800 Zeilen hatte und nur 3 Zeilen geändert werden mussten, sollten beim Ausführen von vtcmd alle 800 Zeilen in der CSV vorhanden sein , nicht nur die 3 Zeilen, die Änderungen enthalten. Alle Daten, die in der CSV-Datei weggelassen werden, werden in den datenerwarteten Zahlen für die Sammlung widergespiegelt.
Das Skript lädt keine zugehörigen Dateien hoch, die während der ursprünglichen Übermittlung hochgeladen wurden. Das Hochladen zugehöriger Dateien ist nur dann erforderlich, wenn sie in korrigierten CSV-Dateien, jedoch nicht in einer der CSV-Dateien der ursprünglichen Einreichung vorkommen. Dies spart Zeit bei der Übermittlung von Genom- und Bilddaten, da das Hochladen der zugehörigen Dateien Tage dauern kann.
Um Daten herunterzuladen, sollten Sie den Befehl downloadcmd verwenden. Dies bietet mehrere Optionen zum Herunterladen Ihrer NDA-Paketdaten oder einer Teilmenge der Daten. Alle Dateien werden automatisch in den Ordner ~nda-toolsdownloadcmdpackages heruntergeladen. Sie können dies jedoch ändern, indem Sie in der Befehlszeile ein neues Verzeichnis zum Speichern der Dateien angeben. Bitte beachten Sie: Das maximale Datentransferlimit beträgt 20 TB pro Monat.
Alle gepackten Daten können durch Übergabe der Paket-ID heruntergeladen werden:
downloadcmd -dp
Hinweis: Zugehörige Dateien werden NICHT heruntergeladen , es sei denn, Sie haben Ihr NDA-Paket mit zugehörigen Dateien erstellt . Nachfolgend finden Sie Schritte zum Herunterladen der zugehörigen Dateien.
Der Befehl downloadcmd bietet zwei Optionen zum Herunterladen von Daten in TXT-Dateien. Wenn Sie Ihr NDA-Paket heruntergeladen haben, finden Sie Metadaten-.txt-Dateien, von denen viele Datenkennzahlen darstellen. Genomik, Bildgebung und andere zugehörige Daten werden in diesen TXT-Dateien als S3-Links aufgeführt. Wenn Sie alle S3-Links in Ihrer TXT-Datei herunterladen möchten, können Sie dies durch Übergabe des Flags -ds angeben.
downloadcmd -dp
Wenn Sie Ihr NDA-Paket und alle Genomik-, Bildgebungs- und anderen zugehörigen Daten als Liste von S3-Links herunterladen möchten, die in einer benutzerdefinierten TXT-Datei gespeichert sind, können Sie dies mit der Flagge -t tun.
downloadcmd -dp
Mit dem Befehl downloadcmd können Sie Ihr NDA-Paket direkt in Ihren S3-Bucket herunterladen.
downloadcmd -dp
Dies ist aus zwei Gründen die bevorzugte Methode zum Herunterladen von Daten von NDA:
Das Herunterladen in einen anderen S3-Bucket erfolgt erheblich schneller, da die Daten AWS nicht verlassen.
Es ermöglicht uns, eine unbegrenzte Datenmenge von NDA direkt in Ihren Bucket herunterzuladen.
Damit S3-zu-S3-Kopiervorgänge erfolgreich sind, muss der als Programmargument bereitgestellte S3-Bucket so konfiguriert sein, dass er PUT-Objektvorgänge für arn:aws:sts::618523879050:federated-user/
zulässt, wobei
ist ist Ihr NDA-Benutzername.
Für nicht öffentliche Buckets ist hierfür eine Aktualisierung der Bucket-Richtlinie erforderlich. Die folgende Anweisung sollte hinzugefügt werden, um die erforderlichen Berechtigungen zu ermöglichen, nachdem
durch den Bucket-Namen ersetzt wurde:
{
"Sid": "AllowNDAUpload",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:federated-user/"
},
"Action": "s3:PutObject*",
"Resource": "arn:aws:s3:::/*"
}
Möglicherweise müssen Sie eine E-Mail an die IT-Abteilung Ihres Unternehmens/Ihrer Institution senden, damit dies für Sie hinzugefügt wird.
Hinweis: Wenn Ihr S3-Bucket mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist, müssen Sie auch die Richtlinie des Schlüssels aktualisieren, der zum Verschlüsseln des Buckets verwendet wird.
Die folgende Erklärung sollte der Richtlinie Ihres Schlüssels hinzugefügt werden:
{
"Sid": "EnableUseForFederatedNDA",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:user/DownloadManager"
},
"Action": ["kms:GenerateDataKey","kms:Decrypt"],
"Resource": "*"
}
Wenn Sie Probleme mit diesem Validation Tool Python-Client haben oder Feedback/Kommentare abgeben möchten, senden Sie uns bitte eine E-Mail an [email protected].