CancerAtHomeV2 / GRAPHQL_EXAMPLES.md
Mentors4EDU's picture
Upload 33 files
7a92197 verified

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

  1. Use the GraphQL Playground: Navigate to http://localhost:5000/graphql for an interactive interface with autocomplete and documentation

  2. Request only needed fields: GraphQL allows you to request exactly the data you need, improving performance

  3. Combine multiple queries: Use aliases to fetch different datasets in a single request

  4. Use variables: Make queries reusable by parameterizing them with variables

  5. Explore the schema: Use the GraphQL Playground's "Docs" panel to see all available queries and fields