L'ontologie pour les investigations biomédicales (OBI) vous aide à communiquer clairement sur les investigations scientifiques en définissant plus de 2 500 termes pour les tests, les dispositifs, les objectifs, etc.
Il s'agit du référentiel des développeurs pour OBI. Vous pouvez télécharger les produits OBI les plus récents ici et en savoir plus sur OBI grâce à notre documentation.
Nos termes d’ontologie se répartissent en trois groupes. Selon le type de terme que vous souhaitez modifier ou ajouter, vous devez suivre différents chemins :
termes externes (provenant d'autres ontologies) : Nous utilisons OntoFox pour les importations. Modifiez le fichier src/ontology/OntoFox_inputs/
correspondant.
termes du modèle : nous utilisons des modèles ROBOT pour convertir des feuilles de calcul en OWL. Modifiez le fichier src/ontology/templates/
approprié :
obsolete.tsv
pour les termes obsolètesassays.tsv
pour les analyses généralesepitope-assays.tsv
spécifiquement pour les tests d'épitopes immunitairesvalue-specifications.tsv
specimens.tsv
pour les spécimensmedical-history.tsv
pour les classifications des antécédents médicaux et les critères de sélection associésstudy-designs.tsv
pour les conceptions d'étudesdata-sets.tsv
pour les ensembles de données autres termes : modifiez src/ontology/obi-edit.owl
dans Protege.
Voir ci-dessous pour une liste complète des fichiers, des instructions de construction et des instructions sur l'utilisation de Git et GitHub pour OBI.
Si vous souhaitez importer des termes à partir d'une ontologie pour laquelle OBI ne dispose pas actuellement de fichier d'importation OntoFox ( src/ontology/OntoFox_inputs/
), suivez ces étapes :
catalog-v001.xml
pour répertorier le nouveau fichier d'importation de la même manière qu'il répertorie les fichiers d'importation existants.obi-edit.owl
.src/ontology/OntoFox_outputs/
, par exemple, pour créer une fausse sortie pour les importations foo.owl : touch src/ontology/OntoFox_outputs/foo_imports.owl
make imports
make obi.owl
Si vous souhaitez modifier un ou plusieurs modèles dans Excel, plutôt que de copier-coller le modèle, nous vous demandons de suivre ce flux de travail pour préserver les citations. Les allers-retours avec Excel peuvent entraîner des modifications involontaires des guillemets doubles dans les modèles.
Tout d’abord, installez la configuration requise pour Python :
python3 -m pip install -r requirements.txt
Ensuite, créez la feuille Excel. Dans votre répertoire git OBI local, exécutez la commande suivante pour créer un fichier appelé obi.xlsx
:
make obi.xlsx
Ensuite, ouvrez obi.xlsx
dans Excel (ou quel que soit l'éditeur de votre choix). Cette feuille de calcul contient un onglet pour chaque modèle OBI (par exemple, « étude-conception », « essais », etc.). Recherchez l'onglet qui correspond au modèle que vous devez modifier, apportez vos modifications et enregistrez la feuille de calcul Excel au même emplacement ( obi.xlsx
). Enfin, exécutez la commande suivante pour mettre à jour les versions TSV des modèles :
make update-tsv
Cela reconvertira les onglets de obi.xlsx
en TSV et écrasera les TSV existants dans le répertoire src/ontology/templates/
avec vos modifications. Vérifiez vos modifications ( git diff
) et faites votre pull request.
Pour savoir où se trouve un terme, vous pouvez utiliser src/scripts/locate.py
.
Vous pouvez ensuite exécuter le script pour rechercher les termes par ID ou étiquette en les transmettant sous forme de liste séparée par des espaces, par exemple :
src/scripts/locate.py OBI:0000070 CHMO:0000087 GO:0000785
Les étiquettes doivent être placées entre guillemets :
src/scripts/locate.py "assay" "fluorescence microscopy" "chromatin"
Le référentiel OBI comprend des scripts Python pour aider les développeurs à modifier efficacement les modèles obi-edit.owl
et OBI. Ces scripts nécessitent Python 3.
Les scripts nécessitent également que vous construisiez d'abord deux bases de données (une à partir d'une édition OBI et une à partir d'une version fusionnée d'OBI) :
make obi-dbs
Étant donné que les étiquettes sont utilisées dans les modèles, rechercher et remplacer manuellement toutes les utilisations d’un terme peut s’avérer difficile et fastidieux. Au lieu de cela, vous pouvez utiliser src/scripts/relabel.py
pour mettre à jour automatiquement l'étiquette d'un terme et ses utilisations.
Vous pouvez l'exécuter en transmettant le terme que vous souhaitez mettre à jour et le nouveau label :
src/scripts/relabel.py CHMO:0000087 "microscopy with fluorescence"
Vous pouvez également transmettre l'ancienne étiquette comme premier argument, à condition qu'elle soit placée entre guillemets :
src/scripts/relabel.py "fluorescence microscopy" "microscopy with fluorescence"
Assurez-vous de valider tous les fichiers modifiés pour garantir que toutes les utilisations sont mises à jour.
README.md
ce document de présentationobi.owl
la dernière version d'OBIMakefile
pour créer OBIviews/
diverses vues spécialisées d'OBIobi.obo
la dernière version d'OBI au format de fichier .obo
obi_core.owl
la dernière version d'OBI Core : ~100 termes cléssrc/
ontology/
fichiers sources pour OBIobi-edit.owl
le fichier OBI OWL principalcore.txt
la liste des termes OBI Coreexternal-byhand.owl
quelques importations personnalisées à partir d'autres ontologiescatalog-v001.xml
une liste artisanale de remplacements d'importation OWLtemplates/
fichiers de modèles ROBOT pour diverses branches d'OBImodules/
les résultats des modèles ROBOTOntoFox_inputs/
Fichiers de configuration OntoFox pour l'importation depuis d'autres ontologiesOntoFox_outputs/
OntoFoxsparql/
SPARQL pour créer et valider OBIscripts/
scripts utilitairesviews/
configuration des vues Le Makefile
contient des scripts pour créer OBI. Sous macOS ou Linux, vous devriez simplement pouvoir exécuter make
ou l'une des tâches spécifiques ci-dessous. Sous Windows, envisagez d'utiliser une sorte de machine virtuelle Linux telle que Docker ou Vagrant. La plupart des résultats seront dans le répertoire build/
. Si vous rencontrez des problèmes, contactez James.
make test
et exécuter des tests SPARQL (ceci est exécuté à chaque poussée vers GitHub)make sort
et corriger les citations et les fins de lignemake imports
mettre à jour les importations OntoFoxmake modules
mettent à jour les modèles de ROBOTmake obi.owl
construise le fichier de version ; le raisonnement peut prendre environ 10 minutesmake views
mettre à jour les modèles de ROBOTmake all
pour une version, exécute imports
, modules
, test
, obi.owl
et views
make build/obi_merged.owl
fusionne obi-edit.owl
en un seul fichier, ne raisonnez pasmake clean
supprimer les fichiers temporairesNous utilisons git et GitHub pour développer OBI. Il y a beaucoup de bonne documentation sur les deux :
Avant de pouvoir commencer à développer avec OBI, vous devrez effectuer une configuration initiale :
inscrivez-vous pour un compte GitHub
installez l'outil de ligne de commande Git, l'application GitHub Desktop ou un autre client Git de votre choix
configurez Git avec votre nom et votre email
cloner le référentiel OBI
si vous utilisez macOS et Excel, configurez un hook de pré-commit (voir ci-dessous pour plus de détails) :
ln -s ../../src/scripts/check-line-endings.sh .git/hooks/pre-commit
Les modifications doivent être apportées par éléments gérables, par exemple ajouter un terme ou modifier quelques termes associés. La plupart des modifications doivent correspondre à un seul problème sur le tracker.
Partez d'une copie locale de la branche master
du référentiel OBI. Assurez-vous que votre copie locale est à jour. Effectuez vos modifications sur une nouvelle branche. Veuillez utiliser la feuille de réservation des identifiants OBI Term ID pour gérer les nouveaux identifiants.
Lorsque vous êtes prêt, transférez votre branche vers le référentiel OBI et effectuez une Pull Request (PR) sur le site Web GitHub. Votre PR est une demande de fusion de votre branche dans master
. Votre PR sera testé, discuté, ajusté si nécessaire, puis fusionné. Ensuite, le cycle peut se répéter pour la prochaine modification que vous ou un autre développeur apporterez.
Voici les étapes avec leurs commandes CLI. Lorsque vous utilisez une application GUI, les étapes seront les mêmes.
git fetch
assurez-vous que votre copie locale est à jourgit checkout master
démarre sur la branche master
git checkout -b your-branch-name
crée une nouvelle branche nommée pour le changement que vous apportezmake sort
tri et normaliser les tableaux, pour des différences plus propresgit status
et git diff
inspectent vos modificationsgit add --update src/
ajoute tous les fichiers mis à jour dans le répertoire src/
à la mise en scènegit commit --message "Description, issue #123"
valide les modifications par étapes avec un message ; c'est bien d'inclure un numéro de problèmegit push --set-upstream origin your-branch-name
poussez votre commit vers GitHubVotre Pull Request sera automatiquement testée. S'il y a des problèmes, nous mettrons à jour votre branche. Une fois tous les tests réussis, votre PR sera examiné par les développeurs OBI. Une fois cet examen terminé, un développeur OBI senior fusionnera le PR. Rincez et répétez !
Le moyen le plus simple de modifier nos fichiers src/ontology/template/
est d'utiliser Excel. Malheureusement, Excel a des règles idiosyncratiques pour citer les valeurs de cellule et, sur macOS, il utilise d'anciennes fins de ligne. Ces deux choses rendent nos différences désordonnées et déroutantes.
Pour des différences claires, nous aimons également exclure les modèles triés par ID. La commande make sort
corrigera les fins de ligne et le tri en exécutant tous les modèles via un script Python.