Example GraphQL Queries for Cancer@Home v2
Basic Queries
Get all genes
query {
genes(limit: 10) {
gene_id
symbol
name
chromosome
gene_type
}
}
Get specific gene by symbol
query {
gene(symbol: "TP53") {
gene_id
symbol
name
chromosome
start_position
end_position
}
}
Get mutations for a specific gene
query {
mutations(gene: "TP53", limit: 20) {
mutation_id
chromosome
position
reference
alternate
consequence
variant_type
quality
}
}
Get mutations on a chromosome
query {
mutations(chromosome: "chr17", limit: 50) {
mutation_id
position
reference
alternate
consequence
}
}
Patient Queries
Get all patients
query {
patients(limit: 100) {
patient_id
project_id
age
gender
race
vital_status
}
}
Get patients by project
query {
patients(project_id: "TCGA-BRCA") {
patient_id
age
gender
vital_status
}
}
Get patients by cancer type
query {
patients(cancer_type: "BRCA", limit: 50) {
patient_id
age
gender
race
}
}
Cancer Type Queries
Get all cancer types
query {
cancerTypes {
cancer_type_id
name
tissue
disease_type
}
}
Get statistics for a cancer type
query {
cancerStatistics(cancer_type_id: "BRCA") {
cancer_type
total_patients
total_mutations
avg_mutations_per_patient
}
}
Mutation Analysis
Get mutation frequency
query {
mutationFrequency(mutation_id: "MUT-TP53-001") {
mutation_id
patients_with_mutation
total_patients
frequency
}
}
Complex Queries
Combined gene and mutation data
query {
gene(symbol: "BRCA1") {
symbol
name
chromosome
}
mutations(gene: "BRCA1") {
mutation_id
position
consequence
quality
}
}
Multiple cancer statistics
query {
breastCancer: cancerStatistics(cancer_type_id: "BRCA") {
cancer_type
total_patients
total_mutations
}
lungCancer: cancerStatistics(cancer_type_id: "LUAD") {
cancer_type
total_patients
total_mutations
}
}
Using Variables
Query with variables
query GetGeneInfo($geneSymbol: String!) {
gene(symbol: $geneSymbol) {
symbol
name
chromosome
}
mutations(gene: $geneSymbol) {
mutation_id
position
consequence
}
}
Variables:
{
"geneSymbol": "TP53"
}
Pagination example
query GetMutations($limit: Int = 10) {
mutations(limit: $limit) {
mutation_id
chromosome
position
}
}
Variables:
{
"limit": 25
}
Filtering Examples
Get high-quality mutations
query {
mutations(gene: "KRAS", limit: 100) {
mutation_id
quality
consequence
}
}
Get patients by demographics
query {
patients(project_id: "TCGA-BRCA") {
patient_id
age
gender
race
vital_status
}
}
Tips for Using GraphQL
Use the GraphQL Playground: Navigate to http://localhost:5000/graphql for an interactive interface with autocomplete and documentation
Request only needed fields: GraphQL allows you to request exactly the data you need, improving performance
Combine multiple queries: Use aliases to fetch different datasets in a single request
Use variables: Make queries reusable by parameterizing them with variables
Explore the schema: Use the GraphQL Playground's "Docs" panel to see all available queries and fields