Pour soumettre des données aux archives de données de l'Institut national de la santé mentale (NDA), les utilisateurs doivent valider leurs données pour s'assurer qu'elles sont conformes au format requis. Cela se fait à l’aide de l’outil de validation et de téléchargement NDA. De plus, les utilisateurs peuvent également regrouper et télécharger des données à partir de NDA. Si les données associées sont téléchargées depuis S3, des jetons AWS fédérés temporaires sont requis. Un package Python et des clients en ligne de commande ont été développés pour permettre aux utilisateurs de valider, conditionner, soumettre et/ou télécharger des données par programme. Services Web de validation, de package de soumission et de soumission de données.
L'utilisateur aura besoin d'une distribution Python pour utiliser le client. Exécutez la commande suivante à partir d'un terminal/invite de commande pour déterminer si Python est déjà installé :
python3 --version
Remarques :
Depuis Python 3.4, pip est inclus par défaut avec le binaire Python. Vous pouvez vérifier la version avec :
pip3 --version
Si pip est installé, vous devriez voir les informations de version. Sinon, vous devez installer pip. Tout d'abord, téléchargez-le depuis https://bootstrap.pypa.io/get-pip.py, puis exécutez ce qui suit pour l'installer pour votre utilisateur.
python3 get-pip.py --user
Remarques :
Ces instructions vous aideront à configurer l'exécution du client.
Entrez simplement la commande suivante dans votre terminal ou votre invite de commande pour installer nda-tools :
pip install nda-tools
Cela installera automatiquement le package nda-tools, y compris les scripts de ligne de commande et les packages requis.
Remarques :
pip install nda-tools --user
python -m NDATools.clientscripts.[NDAtoolcommand]
Bien que cela ne soit pas nécessaire uniquement pour la validation, si vous souhaitez créer un package et soumettre vos données à la NDA, vous devez avoir un compte actif chez nous. Cela peut être demandé sur le site Web de la NDA. Vous pouvez en savoir plus sur ce qui est nécessaire pour contribuer aux données dans la NDA ici.
Keyring est un package Python qui exploite le gestionnaire d'informations d'identification du système d'exploitation pour stocker et récupérer en toute sécurité les informations d'identification des utilisateurs.
Pour les utilisateurs de n'importe quel système d'exploitation, le mot de passe peut être mis à jour avec :
keyring.set_password('nda-tools', USERNAME, NEW_PASSWORD)
Les utilisateurs Mac et Windows peuvent respectivement utiliser le trousseau et le gestionnaire d'informations d'identification pour mettre à jour leurs mots de passe.
Pour mettre à jour votre mot de passe avec le trousseau, exécutez :
keyring.set_password('nda-tools', 'YOUR_USERNAME', 'NEW_PASSWORD')
,en remplaçant YOUR_USERNAME et NEW_PASSWORD par votre nom d'utilisateur NDA et votre nouveau mot de passe. Vous pouvez en savoir plus dans la documentation du porte-clés.
Si aucune entrée n'est stockée via le trousseau de clés, vous serez invité à saisir le mot de passe. Si l'authentification réussit, nda-tools stockera votre mot de passe via un trousseau de clés. L'utilisation ultérieure de nda-tools récupérera le mot de passe automatiquement et en toute sécurité à partir du trousseau de clés.
Les utilisateurs Linux devront peut-être installer une implémentation backend du trousseau de clés, car ils ne disposent peut-être pas d'un gestionnaire d'informations d'identification natif tel que ceux inclus avec les systèmes d'exploitation Mac et Windows. Si le backend du trousseau de clés est manquant, nda-tools affichera le message suivant :
If there is no backend set up for keyring, you may try pip install secretstorage --upgrade keyrings.alt
Pour les utilisateurs d'Ubuntu,
apt-get install -y gnome-keyring
Veuillez noter que si vous rencontrez des erreurs SSL lors de l'exécution du client, vous devrez peut-être réexécuter l'installation des requêtes pip, avec pip install pip install requests[secure]
qui installera des packages supplémentaires avec davantage de prise en charge des connexions SSL.
Pour afficher les options disponibles pour le client Python de l'outil de validation, entrez la commande suivante :
vtcmd -h
ou pour afficher les options disponibles pour le client Télécharger Python, saisissez :
downloadcmd -h
Le fichier ~.NDAToolssettings.cfg fourni avec le client contient des options configurables pour les informations sur les points de terminaison, les fichiers et l'utilisateur.
En règle générale, vous n'aurez pas besoin de modifier les entrées dans la section « Points de terminaison » ; cependant, vous souhaiterez peut-être modifier les sections « Fichiers » et « Utilisateur » avec des emplacements préférés pour les résultats de validation, la connexion de l'utilisateur et les informations d'identification AWS.
Bien que les arguments ne soient pas positionnels, le premier argument doit être la liste des fichiers à valider.
vtcmd -l "Users/[youruser]/Documents/MultipleDataTypes"
"Users/[youruser]/Documents/MultipleDataTypes/Stage_Testing_BigFiles_genomics_sample03.csv"
Il est nécessaire que vous connaissiez le chemin complet des fichiers csv qui vont être validés. De plus, si vos données incluent des manifestes et/ou des fichiers associés (c'est-à-dire des fichiers génomiques, des fichiers d'imagerie, etc.), vous devez également connaître le chemin complet de ces fichiers, qui doit être saisi comme argument de ligne de commande facultatif. Sinon, le client vous demandera d'entrer une liste de répertoires dans lesquels les fichiers supplémentaires sont stockés. Vous pouvez également répertorier un compartiment, un préfixe facultatif et vos informations d'identification AWS si les fichiers associés se trouvent dans AWS.
Veuillez noter : lorsque vous répertoriez le répertoire des fichiers associés, incluez le dossier jusqu'au nom de fichier répertorié dans le fichier csv, mais sans l'inclure .
Si le nom du fichier associé se trouve dans Users/[youruser]/Documents/MultipleDataTypes/data/1G_file.fastq et est répertorié dans votre fichier csv comme :
data/1G_file.fastq
alors le répertoire que vous entrerez est :
Utilisateurs/[votreutilisateur]/Documents/MultipleDataTypes
Vous ne devez pas inclure le dossier « data/ » dans le nom du répertoire.
Pour lancer la validation, vous devez saisir une liste de fichiers (ou un chemin de fichier s'il n'est pas dans le répertoire courant), séparés par un espace :
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv
Si vos données incluent des fichiers manifestes, vous devez saisir les répertoires où se trouvent les fichiers manifestes, séparés par un espace :
vtcmd submission_data/sample_imagingcollection01.csv -m submission_data/Manifests
S'il existe des fichiers associés, indiquez les répertoires où ils se trouvent, séparés par un espace :
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l MultipleDataTypes testdata/with_associated_files
Si les fichiers se trouvent ailleurs que dans le répertoire de travail actuel, vous devez alors saisir le chemin complet des fichiers :
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l Users/[youruser]/Downloads/SubmissionData testdata/with_associated_files
Si vos fichiers associés sont dans S3, vous devez inclure le nom du compartiment, la clé d'accès et la clé secrète.
vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -s3 my_bucket -ak XXXXXXXXXXXXXX -sk XXXXXXXXXXXXXX
Remarque : Vous pouvez également télécharger des fichiers associés enregistrés localement et dans s3. Assurez-vous simplement d'inclure le répertoire dans lequel les fichiers locaux sont enregistrés (-l path/to/local/associated/files)
Pour créer un package, entrez "-b" à la fin de votre argument de ligne de commande. Vous pouvez également saisir votre nom d'utilisateur, vos informations d'identification AWS, votre ID de collection, ainsi que le titre et la description de votre soumission, ou vous pouvez saisir ces informations ultérieurement lorsque le client vous y invite. Le client ne commencera pas à créer le package de soumission avant :
Une fois la soumission et le téléchargement du package terminés, vous recevrez un e-mail dans votre boîte de réception de la part de NDA confirmant que votre soumission a réussi. Une version locale du package sera automatiquement enregistrée dans le dossier ~nda-toolsvtcmdsubmission_package et peut être trouvée dans l'onglet de soumission de collection sur le site NDA.
Un contrôle d'assurance qualité est effectué sur toutes les données après qu'elles ont été soumises à la NDA pour détecter les incohérences dans les points de données, notamment le sexe, le sujet, l'âge de l'entretien et la date de l'entretien. Si des problèmes sont détectés avec les données, un e-mail sera envoyé aux utilisateurs qui ont créé la soumission avec un rapport sur les erreurs trouvées par NDA.
Pour corriger les données dans NDA pour votre soumission, vous devez remplacer tous les fichiers CSV qui contenaient des erreurs dans votre soumission originale. Pour ce faire, vous devez :
Par exemple, si la soumission originale avec l'ID 123456 comprenait file1.csv, file2.csv et file3.csv, et que des corrections devaient être apportées à file1.csv et file2.csv, la commande pour corriger les erreurs qa ressemblera à :
vtcmd -b -rs 123456 corrected-file1.csv corrected-file2.csv
Notez que file3.csv est exclu de la commande car aucune modification n'a besoin d'être apportée à ce fichier particulier.
Veuillez noter que cette commande doit être exécutée une fois pour une soumission et doit inclure tous les fichiers contenant des corrections de données . c'est-à-dire, n'exécutez pas vtcmd une fois pour le fichier corrigé1.csv et une autre fois pour le fichier corrigé2.csv. Si vous omettez accidentellement des fichiers contenant les modifications nécessaires lors de l'exécution de la commande, veuillez contacter le HelpDesk à [email protected].
Notez également que les fichiers CSV doivent contenir toutes les données soumises à l'origine. c'est-à-dire que si un csv avait à l'origine 800 lignes et que seulement 3 lignes devaient être modifiées, toutes les 800 lignes devraient être présentes dans le csv lors de l'exécution de vtcmd , pas seulement les 3 lignes qui contiennent des modifications. Toutes les données exclues du fichier CSV seront reflétées dans les nombres de données attendus pour la collection.
Le script ne téléchargera aucun fichier associé qui a été téléchargé lors de la soumission originale. Il ne sera nécessaire de télécharger les fichiers associés que s'ils apparaissent dans les fichiers csv corrigés mais pas dans les fichiers csv de la soumission originale. Cela permet de gagner du temps lors des soumissions génomiques et d’imagerie, où le téléchargement des fichiers associés peut prendre des jours.
Pour télécharger des données, vous devez utiliser la commande downloadcmd. Cela offre plusieurs options pour télécharger vos données packagées NDA ou un sous-ensemble de données. Tous les fichiers sont téléchargés automatiquement dans le dossier ~nda-toolsdownloadcmdpackages , mais vous pouvez modifier cela en indiquant un nouveau répertoire dans la ligne de commande pour enregistrer les fichiers. Attention : la limite maximale de transfert de données est de 20 To par mois.
Toutes les données packagées peuvent être téléchargées en transmettant l'ID du package :
downloadcmd -dp
Remarque : il ne téléchargera PAS les fichiers associés à moins que vous n'ayez créé votre package NDA avec les fichiers associés . Les étapes pour télécharger les fichiers associés sont ci-dessous.
La commande downloadcmd propose deux options pour télécharger des données dans des fichiers .txt. Si vous avez téléchargé votre package NDA, vous trouverez des fichiers de métadonnées .txt, dont beaucoup représentent des mesures de données. La génomique, l'imagerie et d'autres données associées seront répertoriées dans ces fichiers .txt sous forme de liens s3. Si vous souhaitez télécharger tous les liens s3 dans votre fichier .txt, vous pouvez l'indiquer en passant l'indicateur -ds.
downloadcmd -dp
Si vous souhaitez télécharger votre package NDA et toutes les données génomiques, d'imagerie et autres données associées sous forme de liste de liens s3 stockés dans un fichier .txt personnalisé, vous pouvez le faire en utilisant l'indicateur -t.
downloadcmd -dp
La commande downloadcmd peut télécharger votre package NDA directement dans votre compartiment S3.
downloadcmd -dp
Il s'agit du moyen privilégié pour télécharger des données depuis NDA pour deux raisons :
Le téléchargement vers un autre compartiment S3 est considérablement plus rapide car les données ne quittent pas AWS.
Il nous permet de télécharger une quantité illimitée de données de NDA directement vers votre compartiment.
Pour que les opérations de copie S3 vers S3 réussissent, le compartiment S3 fourni comme argument de programme doit être configuré pour autoriser les opérations d'objet PUT pour arn:aws:sts::618523879050:federated-user/
, où
est votre nom d'utilisateur NDA.
Pour les compartiments non publics, cela nécessitera une mise à jour de la stratégie du compartiment. L'instruction suivante doit être ajoutée pour accorder les autorisations nécessaires après avoir remplacé
par le nom du bucket :
{
"Sid": "AllowNDAUpload",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:federated-user/"
},
"Action": "s3:PutObject*",
"Resource": "arn:aws:s3:::/*"
}
Vous devrez peut-être envoyer un e-mail au service informatique de votre entreprise/institution pour que cela soit ajouté pour vous.
Remarque : Si votre compartiment S3 est chiffré avec une clé KMS gérée par le client, vous devrez également mettre à jour la stratégie de la clé utilisée pour chiffrer le compartiment.
La déclaration suivante doit être ajoutée à la politique de votre clé :
{
"Sid": "EnableUseForFederatedNDA",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::618523879050:user/DownloadManager"
},
"Action": ["kms:GenerateDataKey","kms:Decrypt"],
"Resource": "*"
}
Si vous rencontrez des problèmes avec ce client Python de l'outil de validation ou si vous souhaitez nous faire part de vos commentaires, veuillez nous envoyer un e-mail à [email protected].