Zelfs na meer dan honderd jaar na de introductie blijft histologie de gouden standaard in tumordiagnose en -prognose. Anatomische pathologen evalueren de histologie om kankerpatiënten in verschillende groepen in te delen, afhankelijk van hun tumorgenotypes en -fenotypes en hun klinische uitkomst [1,2]. Menselijke beoordeling van histologische objectglaasjes is echter subjectief en niet herhaalbaar [3]. Bovendien is histologische beoordeling een tijdrovend proces waarvoor hoogopgeleide professionals nodig zijn.
Met aanzienlijke technologische vooruitgang in het afgelopen decennium zijn technieken zoals WSI (whole slide imaging) en deep learning (DL) nu algemeen beschikbaar. WSI is het scannen van conventionele microscopie-objectglaasjes om van die objectglaasjes een enkel beeld met hoge resolutie te produceren. Dit maakt de digitalisering en verzameling van grote sets pathologiebeelden mogelijk, wat onbetaalbaar tijdrovend en duur zou zijn geweest. De beschikbaarheid van dergelijke datasets creëert nieuwe en innovatieve manieren om de diagnose te versnellen door technieken zoals machine learning (ML) te gebruiken om pathologen te helpen diagnoses te versnellen door snel interessante kenmerken te identificeren.
In dit bericht zullen we onderzoeken hoe ontwikkelaars zonder eerdere ML-ervaring kunnen gebruiken Aangepaste labels voor Amazon-herkenning om een model te trainen dat cellulaire kenmerken classificeert. Amazon Recognition Custom Labels is een kenmerk van Amazon Rekognition waarmee u uw eigen gespecialiseerde ML-gebaseerde beeldanalysemogelijkheden kunt bouwen om unieke objecten en scènes te detecteren die een integraal onderdeel zijn van uw specifieke use-case. We gebruiken met name een dataset met volledige dia-afbeeldingen van borstcarcinoom bij honden [1] om te demonstreren hoe deze afbeeldingen moeten worden verwerkt en om een model te trainen dat mitotische figuren detecteert. Deze dataset is gebruikt met toestemming van prof. dr. Marc Aubreville, die ons toestemming heeft gegeven om deze voor deze post te gebruiken. Zie voor meer informatie het hoofdstuk Dankbetuigingen aan het einde van dit bericht.
Overzicht oplossingen
De oplossing bestaat uit twee componenten:
- Een Amazon Recognition Custom Labels-model — Om Amazon Rekognition in staat te stellen mitotische figuren te detecteren, doorlopen we de volgende stappen:
- Bemonster de WSI-gegevensset om afbeeldingen van voldoende grootte te produceren met behulp van Amazon SageMaker Studio en een Python-code die draait op een Jupyter-notebook. Studio is een webgebaseerde, geïntegreerde ontwikkelomgeving (IDE) voor ML die alle tools biedt die u nodig hebt om uw modellen van experiment naar productie te brengen en tegelijkertijd uw productiviteit te verhogen. We zullen Studio gebruiken om de afbeeldingen in kleinere te splitsen om ons model te trainen.
- Train een Amazon Rekognition Custom Labels-model om mitotische figuren in hematoxyline-eosinemonsters te herkennen met behulp van de gegevens die in de vorige stap zijn voorbereid.
- Een frontend-applicatie — Om te demonstreren hoe een model te gebruiken zoals het model dat we in de vorige stap hebben getraind, doorlopen we de volgende stappen:
Het volgende diagram illustreert de oplossingsarchitectuur.
Alle benodigde bronnen om de implementatie die in dit bericht wordt besproken en de code voor de hele sectie te implementeren, zijn beschikbaar op GitHub. U kunt de repository klonen of splitsen, de gewenste wijzigingen aanbrengen en deze zelf uitvoeren.
In de volgende stappen lopen we door de code om inzicht te krijgen in de verschillende stappen die betrokken zijn bij het verkrijgen en voorbereiden van de gegevens, het trainen van het model en het gebruiken ervan vanuit een voorbeeldtoepassing.
Kosten
Wanneer u de stappen in deze walkthrough uitvoert, maakt u kleine kosten voor het gebruik van de volgende AWS-services:
- Amazon Rekognition
- AWS Fargate
- Toepassing Load Balancer
- AWS-geheimenmanager
Als u zich niet meer binnen de Free Tier-periode of -voorwaarden bevindt, kunt u bovendien kosten maken voor de volgende services:
- CodePipeline
- CodeBuild
- Amazon ECR
- Amazon Sage Maker
Als u de opruimstappen correct voltooit na het voltooien van deze walkthrough, kunt u verwachten dat de kosten minder dan 10 USD bedragen, als het Amazon Rekognition Custom Labels-model en de webapplicatie een uur of minder draaien.
Voorwaarden
Om alle stappen te voltooien, hebt u het volgende nodig:
Het mitotische figuurclassificatiemodel trainen
We voeren alle stappen uit die nodig zijn om het model te trainen vanuit een Studio-notebook. Als u Studio nog nooit eerder hebt gebruikt, kan het nodig zijn aan boord Eerst. Voor meer informatie, zie Ga snel aan boord van Amazon SageMaker Studio.
Sommige van de volgende stappen vereisen meer RAM dan wat beschikbaar is in een standaard ml.t3.medium-notebook. Zorg ervoor dat je een ml.m5.large notitieboek hebt geselecteerd. U zou een indicatie van 2 vCPU + 8 GiB in de rechterbovenhoek van de pagina moeten zien.
De code voor deze sectie is beschikbaar als een Jupyter notebookbestand.
Na de onboarding bij Studio volgt u deze instructies om Studio de benodigde machtigingen te verlenen om namens u Amazon Rekognition te bellen.
afhankelijkheden
Om te beginnen moeten we de volgende stappen doorlopen:
- Werk Linux-pakketten bij en installeer de vereiste afhankelijkheden, zoals OpenSlide:
- Installeer de fastai- en SlideRunner-bibliotheken met behulp van pip:
- Download de dataset (we leveren een script om dit automatisch te doen):
Verwerk de gegevensset
We beginnen met het importeren van enkele van de pakketten die we tijdens de gegevensvoorbereidingsfase gebruiken. Vervolgens downloaden en laden we de annotatiedatabase voor deze dataset. Deze database bevat de posities in de hele dia-afbeeldingen van de mitotische figuren (de kenmerken die we willen classificeren). Zie de volgende code:
Omdat we SageMaker gebruiken, maken we een nieuwe SageMaker Sessie bezwaar maken tegen het vergemakkelijken van taken zoals het uploaden van onze dataset naar een Amazon eenvoudige opslagservice (Amazon S3) emmer. We gebruiken ook de S3-bucket die SageMaker standaard maakt om onze verwerkte afbeeldingsbestanden te uploaden.
De slidelist_test
array bevat de ID's van de dia's die we gebruiken als onderdeel van de testgegevensset om de prestaties van het getrainde model te evalueren. Zie de volgende code:
De volgende stap is het verkrijgen van een reeks trainingsgebieden en testdia's, samen met de labels erin, waaruit we kleinere gebieden kunnen gebruiken om ons model te trainen. De code voor get_slides staat in het bestand sampling.py GitHub.
We willen willekeurig monsters nemen uit de trainings- en testdia's. We gebruiken de lijsten met trainings- en testdia's en selecteren willekeurig n_training_images
keer een bestand voor training, en n_test_images
keer een bestand voor test:
Vervolgens maken we een directory voor trainingsafbeeldingen en een voor testafbeeldingen:
Voordat we de kleinere afbeeldingen maken die nodig zijn om het model te trainen, hebben we hulpcode nodig die de metadata produceert die nodig zijn om de trainings- en testgegevens te beschrijven. De volgende code zorgt ervoor dat een gegeven begrenzingskader rond de kenmerken van belang (mitotische figuren) goed binnen de zone valt die we snijden, en produceert een JSON-regel die de afbeelding en de kenmerken erin beschrijft in Amazon SageMaker Grondwaarheid formaat, het formaat dat Amazon Rekognition Custom Labels vereist. Zie voor meer informatie over dit manifestbestand voor objectdetectie Lokalisatie van objecten in manifestbestanden.
Met de generate_annotations
functioneren, kunnen we de code schrijven om de trainings- en testafbeeldingen te produceren:
De laatste stap op weg naar het hebben van alle vereiste gegevens is het schrijven van een manifest.json
bestand voor elk van de datasets:
Breng de bestanden over naar S3
We maken gebruik van de upload_data
methode die het SageMaker-sessieobject blootlegt om de afbeeldingen en manifestbestanden te uploaden naar de standaard SageMaker S3-bucket:
Train een Amazon Recognition Custom Labels-model
Met de gegevens die al in Amazon S3 staan, kunnen we beginnen met het trainen van een aangepast model. We gebruiken de Boto3-bibliotheek om een Amazon Rekognition-client te maken en een project te maken:
Nu het project klaar is voor gebruik, heb je nu een projectversie nodig die verwijst naar de trainings- en testdatasets in Amazon S3. Elke versie verwijst idealiter naar verschillende datasets (of verschillende versies ervan). Dit stelt ons in staat om verschillende versies van een model te hebben, hun prestaties te vergelijken en er indien nodig tussen te schakelen. Zie de volgende code:
Nadat we de projectversie hebben gemaakt, start Amazon Rekognition automatisch het trainingsproces. De trainingstijd is afhankelijk van verschillende kenmerken, zoals de grootte van de afbeeldingen en het aantal, het aantal klassen, enzovoort. In dit geval duurt de training voor 500 afbeeldingen ongeveer 90 minuten.
Test het model
Na de training zit elk model in Amazon Rekognition Custom Labels in de STOPPED
staat. Om het voor gevolgtrekking te gebruiken, moet u het starten. We halen de projectversie ARN uit de projectversiebeschrijving en geven deze door aan de start_project_version
. let op de MinInferenceUnits
parameter — we beginnen met één inferentie-eenheid. Het werkelijke maximale aantal transacties per seconde (TPS) dat deze inferentie-eenheid ondersteunt, is afhankelijk van de complexiteit van uw model. Raadpleeg dit voor meer informatie over TPS blogpost.
Wanneer uw projectversie wordt vermeld als RUNNING
, kunt u beginnen met het verzenden van afbeeldingen naar Amazon Rekognition voor gevolgtrekking.
We gebruiken een van de bestanden in de testdataset om het nieuw gestarte model te testen. U kunt in plaats daarvan elk geschikt PNG- of JPEG-bestand gebruiken.
Streamlit-applicatie
Om de integratie met Amazon Rekognition te demonstreren, gebruiken we een heel eenvoudige Python-applicatie. Wij gebruiken de Gestroomlijnd bibliotheek om een Spartaanse gebruikersinterface te bouwen, waar we de gebruiker vragen een afbeeldingsbestand te uploaden.
We gebruiken de Boto3-bibliotheek en de detect_custom_labels
methode, samen met de projectversie ARN, om het gevolgtrekkingseindpunt aan te roepen. Het antwoord is een JSON-document dat de posities en klassen bevat van de verschillende objecten die in de afbeelding zijn gedetecteerd. In ons geval zijn dit de mitotische figuren die het algoritme heeft gevonden in de afbeelding die we naar het eindpunt hebben gestuurd. Zie de volgende code:
Implementeer de applicatie in AWS
Om de applicatie te implementeren, gebruiken we een AWS CDK-script. Het hele project is te vinden op GitHub . Laten we eens kijken naar de verschillende bronnen die door het script worden ingezet.
Maak een Amazon ECR-repository
Als eerste stap naar het opzetten van onze implementatie, creëren we een Amazon ECR-repository, waar we onze toepassingscontainerafbeeldingen kunnen opslaan:
Creëer en bewaar uw GitHub-token in AWS Secrets Manager
CodePipeline heeft een GitHub Personal Access Token nodig om uw GitHub-repository te controleren op wijzigingen en pull-code. Om het token te maken, volgt u de instructies in de GitHub-documentatie. Het token vereist de volgende GitHub-bereiken:
- De
repo
scope, die wordt gebruikt voor volledige controle om artefacten uit openbare en privé-repository's te lezen en naar een pijplijn te halen. - De
admin:repo_hook
scope, die wordt gebruikt voor volledige controle over repository hooks.
Nadat u het token hebt gemaakt, slaat u het op in een nieuw geheim in AWS-geheimenmanager als volgt:
Schrijf configuratieparameters naar AWS Systems Manager Parameter Store
Het AWS CDK-script leest enkele configuratieparameters uit AWS Systems Manager-parameteropslag, zoals de naam en eigenaar van de GitHub-repository, en het doelaccount en de regio. Voordat u het AWS CDK-script start, moet u deze parameters in uw eigen account maken.
U kunt dat doen door de AWS CLI te gebruiken. Roep gewoon de put-parameter
opdracht met een naam, een waarde en het type parameter:
Het volgende is een lijst met alle parameters die vereist zijn voor het AWS CDK-script. Ze zijn allemaal van het type String
:
- /rek_wsi/prod/accountId — De ID van het account waarop we de toepassing implementeren.
- /rek_wsi/prod/ecr_repo_name — De naam van de Amazon ECR-repository waar de containerafbeeldingen zijn opgeslagen.
- /rek_wsi/prod/github/branch — De branch in de GitHub-repository waaruit CodePipeline de code moet halen.
- /rek_wsi/prod/github/owner — De eigenaar van de GitHub-repository.
- /rek_wsi/prod/github/repo — De naam van de GitHub-repository waar onze code is opgeslagen.
- /rek_wsi/prod/github/token — De naam of ARN van het geheim in Secrets Manager dat uw GitHub-authenticatietoken bevat. Dit is nodig voor CodePipeline om te kunnen communiceren met GitHub.
- /rek_wsi/prod/region — De regio waar we de toepassing zullen implementeren.
Let op de prod
segment in alle parameternamen. Hoewel we dit detailniveau niet nodig hebben voor zo'n eenvoudig voorbeeld, zal het ons in staat stellen om deze aanpak te hergebruiken bij andere projecten waar verschillende omgevingen nodig kunnen zijn.
Bronnen gemaakt door het AWS CDK-script
We hebben onze applicatie, die in een Fargate-taak draait, nodig om toestemming te hebben om Amazon Rekognition aan te roepen. Dus we maken eerst een AWS Identiteits- en toegangsbeheer (IAM) Taak Rol met de RekognitionReadOnlyPolicy
beleid eraan verbonden. Merk op dat de assumed_by
parameter in de volgende code neemt de ecs-tasks.amazonaws.com
diensthoofd. Dit komt omdat we Amazon ECS als orkestrator gebruiken, dus we hebben Amazon ECS nodig om de rol op zich te nemen en de inloggegevens door te geven aan de Fargate-taak.
Eenmaal gebouwd, bevindt onze applicatiecontainerimage zich in een privé Amazon ECR-repository. We hebben een object nodig dat het beschrijft dat we kunnen doorgeven bij het maken van de Fargate-service:
Voor deze applicatie maken we een nieuwe VPC en cluster aan. U kunt dit onderdeel aanpassen om uw eigen VPC te gebruiken met behulp van de from_lookup
methode van de Vpc
klasse:
Nu we een VPC en cluster hebben om naar toe te implementeren, maken we de Fargate-service. We gebruiken 0.25 vCPU en 512 MB RAM voor deze taak, en we plaatsen er een publieke Application Load Balancer (ALB) voor. Eenmaal geïmplementeerd, gebruiken we de ALB CNAME om toegang te krijgen tot de applicatie. Zie de volgende code:
Om elke keer dat we code naar onze hoofdtak pushen automatisch een nieuwe containerimage te bouwen en te implementeren, maken we een eenvoudige pijplijn die bestaat uit een GitHub-bronactie en een bouwstap. Hier gebruiken we de geheimen die we in de vorige stappen hebben opgeslagen in AWS Secrets Manager en AWS Systems Manager Parameter Store.
CodeBuild heeft machtigingen nodig om containerafbeeldingen naar Amazon ECR te pushen. Om deze machtigingen te verlenen, voegen we de AmazonEC2ContainerRegistryFullAccess
beleid naar een op maat gemaakte IAM-rol die de CodeBuild-serviceprincipal kan aannemen:
Het CodeBuild-project logt in op de privé Amazon ECR-repository, bouwt de Docker-image met de Streamlit-applicatie en pusht de image samen met een appspec.yaml
en een imagedefinitions.json
bestand.
De appspec.yaml
bestand beschrijft de taak (poort, Fargate-platformversie, enzovoort), terwijl het imagedefinitions.json
bestand wijst de namen van de containerafbeeldingen toe aan hun overeenkomstige Amazon ECR URI. Zie de volgende code:
Tot slot zetten we de verschillende pijplijnstadia bij elkaar. De laatste actie is de EcsDeployAction
, die de containerimage neemt die in de vorige fase is gebouwd en een doorlopende update uitvoert van de taken in ons ECS-cluster:
Opruimen
Om toekomstige kosten te voorkomen, ruimt u de bronnen op die u als onderdeel van deze oplossing hebt gemaakt.
Amazon Recognition Custom Labels-model
Voordat u uw Studio-notebook afsluit, moet u ervoor zorgen dat u het Amazon Rekognition Custom Labels-model stopt. Doe je dat niet, dan blijven er kosten aan verbonden.
U kunt ook de Amazon Rekognition-console gebruiken om de service te stoppen:
- Kies op de Amazon Rekognition-console Gebruik aangepaste labels in het navigatievenster.
- Kies Projecten in het navigatievenster.
- Kies versie 1 van de
rek-mitotic-figures-workshop
project. - Op de Gebruik Model tabblad, kies stop.
Streamlit-applicatie
Om alle bronnen die aan de Streamlit-applicatie zijn gekoppeld te vernietigen, voert u de volgende code uit vanuit de AWS CDK-applicatiemap:
AWS-geheimenmanager
Om het GitHub-token te verwijderen, volgt u de instructies in de documentatie.
Conclusie
In dit bericht hebben we de nodige stappen doorlopen om een Amazon Rekognition Custom Labels-model te trainen voor een digitale pathologietoepassing met behulp van gegevens uit de echte wereld. Vervolgens hebben we geleerd hoe we het model kunnen gebruiken vanuit een eenvoudige applicatie die is geïmplementeerd vanuit een CI/CD-pijplijn naar Fargate.
Met Amazon Rekognition Custom Labels kun je ML-compatibele zorgapplicaties bouwen die je eenvoudig kunt bouwen en implementeren met behulp van services zoals Fargate, CodeBuild en CodePipeline.
Kun je toepassingen bedenken waarmee onderzoekers, artsen of hun patiënten hun leven gemakkelijker kunnen maken? Zo ja, gebruik dan de code in deze walkthrough om uw volgende applicatie te bouwen. En als u vragen heeft, kunt u deze delen in het opmerkingengedeelte.
Dankwoord
We willen Prof. Dr. Marc Aubreville bedanken voor de toestemming om de MITOS_WSI_CMC dataset voor deze blogpost te gebruiken. De dataset is te vinden op GitHub.
Referenties
[1] Aubreville, M., Bertram, CA, Donovan, TA et al. Een volledig geannoteerde gegevensset met hele dia's van borstkanker bij honden ter ondersteuning van onderzoek naar borstkanker bij mensen. Sci-gegevens 7, 417 (2020). https://doi.org/10.1038/s41597-020-00756-z
[2] Khened, M., Kori, A., Rajkumar, H. et al. Een gegeneraliseerd deep learning-raamwerk voor beeldsegmentatie en analyse van hele dia's. Sci Rep 11, 11579 (2021). https://doi.org/10.1038/s41598-021-90444-8
[3] PNAS 27 maart 2018 115 (13) E2970-E2979; voor het eerst gepubliceerd op 12 maart 2018; https://doi.org/10.1073/pnas.1717139115
Over de auteur
Pablo Nuñez Pölcher, MSc, is een Senior Solutions Architect die werkt voor het Public Sector-team met Amazon Web Services. Pablo richt zich op het helpen van klanten in de publieke sector in de gezondheidszorg bij het bouwen van nieuwe, innovatieve producten op AWS in overeenstemming met best practices. Hij behaalde zijn M.Sc. in biologische wetenschappen aan de Universidad de Buenos Aires. In zijn vrije tijd houdt hij van fietsen en sleutelen aan ML-enabled embedded devices.
Razvan Ionasec, PhD, MBA, is de technische leider voor gezondheidszorg bij Amazon Web Services in Europa, het Midden-Oosten en Afrika. Zijn werk richt zich op het helpen van klanten in de gezondheidszorg bij het oplossen van zakelijke problemen door gebruik te maken van technologie. Voorheen was Razvan wereldwijd hoofd van kunstmatige intelligentie (AI)-producten bij Siemens Healthineers en verantwoordelijk voor AI-Rad Companion, de familie van AI-aangedreven en cloudgebaseerde digitale gezondheidsoplossingen voor beeldvorming. Hij heeft meer dan 30 patenten op het gebied van AI/ML voor medische beeldvorming en heeft meer dan 70 internationale peer-reviewed technische en klinische publicaties gepubliceerd over computervisie, computationele modellering en analyse van medische beelden. Razvan behaalde zijn doctoraat in computerwetenschappen aan de Technische Universiteit München en een MBA aan de University of Cambridge, Judge Business School.
- '
- "
- &
- 100
- 11
- 110
- 2020
- 2021
- 7
- Over
- versnellen
- toegang
- Account
- Actie
- Afrika
- AI
- algoritme
- Alles
- al
- Hoewel
- Amazone
- Amazon Rekognition
- Amazon Sage Maker
- Amazon Web Services
- analyse
- Aanvraag
- toepassingen
- APT
- architectuur
- kunstmatig
- kunstmatige intelligentie
- Kunstmatige intelligentie (AI)
- Activa
- authenticatie
- beschikbaarheid
- Beschikbaar
- AWS
- balancer
- BEST
- 'best practices'
- Blog
- het stimuleren
- Box camera's
- Borstkanker
- bouw
- bedrijfsdeskundigen
- Bellen
- Cambridge
- Kan krijgen
- Kanker
- kankeronderzoek
- lading
- classificatie
- code
- Collectie
- opmerkingen
- Computer Science
- Computer visie
- vertrouwen
- Configuratie
- troosten
- Containers
- containers
- bevat
- blijft
- Kosten
- Wij creëren
- Geloofsbrieven
- Klanten
- gegevens
- Database
- databanken
- diepgaand leren
- vernietigen
- detail
- Opsporing
- ontwikkelaars
- Ontwikkeling
- systemen
- anders
- digitaal
- Digitale gezondheid
- digitalisering
- havenarbeider
- Artsen
- beneden
- gemakkelijk
- echo
- Endpoint
- Milieu
- Europa
- voorbeeld
- ervaring
- exporteren
- familie
- Kenmerk
- Voordelen
- Figuur
- Voornaam*
- volgen
- vork
- formaat
- gevonden
- Achtergrond
- Gratis
- vol
- functie
- toekomst
- voortbrengen
- geometrie
- GitHub
- Vrijgevigheid
- Globaal
- Tijdloos goud
- toe te kennen
- subsidies
- met
- hoofd
- Gezondheid
- gezondheidszorg
- hulp
- hier
- Hoe
- How To
- HTTPS
- IAM
- Identiteit
- beeld
- foto analyse
- beeldsegmentatie
- Imaging
- importeren
- informatie
- innovatieve
- integraal
- integratie
- Intelligentie
- belang
- Internationale
- betrokken zijn
- IT
- Jupyter Notebook
- labels
- Groot
- laatste
- lancering
- LEARN
- geleerd
- leren
- Niveau
- Bibliotheek
- Lijn
- linux
- Lijst
- lijsten
- laden
- Lokalisatie
- machine learning
- Maps
- Maart
- medisch
- medische beeldvorming
- Medium
- Midden-Oosten
- ML
- model
- modellering
- modellen
- meer
- München
- namen
- Navigatie
- nodig
- Objectdetectie
- Onboarding
- Overige
- eigenaar
- Octrooien
- pathologie
- patiënten
- prestatie
- persoonlijk
- platform
- beleidsmaatregelen
- Principal
- privaat
- productie
- produktiviteit
- Producten
- professionals
- project
- projecten
- zorgen voor
- biedt
- publiek
- publieke sector
- publicaties
- Python
- RAM
- onderzoek
- Resources
- antwoord
- lopen
- lopend
- sagemaker
- het scannen
- School
- Wetenschap
- WETENSCHAPPEN
- sector
- gekozen
- Diensten
- reeks
- het instellen van
- Delen
- Siemens
- aanzienlijke
- Eenvoudig
- Maat
- Klein
- So
- Oplossingen
- OPLOSSEN
- Tussenruimte
- gespecialiseerde
- spleet
- Stadium
- begin
- gestart
- Land
- Status
- mediaopslag
- shop
- studio
- steunen
- Stap over voor slechts
- Systems
- doelwit
- Technisch
- technieken
- Technologie
- proef
- De Bron
- Door
- niet de tijd of
- tijdrovend
- samen
- teken
- tools
- top
- Trainingen
- Transacties
- unieke
- universiteit-
- Universiteit van Cambridge
- bijwerken
- URI
- us
- USD
- waarde
- versie
- visie
- W
- web
- webservices
- Web-based
- Wat
- Wat is
- WIE
- wijd
- binnen
- zonder
- Mijn werk
- werkzaam
- zou
- het schrijven van
- X
- jaar
- youtube