# Example GraphQL Queries for Cancer@Home v2 ## Basic Queries ### Get all genes ```graphql query { genes(limit: 10) { gene_id symbol name chromosome gene_type } } ``` ### Get specific gene by symbol ```graphql query { gene(symbol: "TP53") { gene_id symbol name chromosome start_position end_position } } ``` ### Get mutations for a specific gene ```graphql query { mutations(gene: "TP53", limit: 20) { mutation_id chromosome position reference alternate consequence variant_type quality } } ``` ### Get mutations on a chromosome ```graphql query { mutations(chromosome: "chr17", limit: 50) { mutation_id position reference alternate consequence } } ``` ## Patient Queries ### Get all patients ```graphql query { patients(limit: 100) { patient_id project_id age gender race vital_status } } ``` ### Get patients by project ```graphql query { patients(project_id: "TCGA-BRCA") { patient_id age gender vital_status } } ``` ### Get patients by cancer type ```graphql query { patients(cancer_type: "BRCA", limit: 50) { patient_id age gender race } } ``` ## Cancer Type Queries ### Get all cancer types ```graphql query { cancerTypes { cancer_type_id name tissue disease_type } } ``` ### Get statistics for a cancer type ```graphql query { cancerStatistics(cancer_type_id: "BRCA") { cancer_type total_patients total_mutations avg_mutations_per_patient } } ``` ## Mutation Analysis ### Get mutation frequency ```graphql query { mutationFrequency(mutation_id: "MUT-TP53-001") { mutation_id patients_with_mutation total_patients frequency } } ``` ## Complex Queries ### Combined gene and mutation data ```graphql query { gene(symbol: "BRCA1") { symbol name chromosome } mutations(gene: "BRCA1") { mutation_id position consequence quality } } ``` ### Multiple cancer statistics ```graphql 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 ```graphql query GetGeneInfo($geneSymbol: String!) { gene(symbol: $geneSymbol) { symbol name chromosome } mutations(gene: $geneSymbol) { mutation_id position consequence } } ``` Variables: ```json { "geneSymbol": "TP53" } ``` ### Pagination example ```graphql query GetMutations($limit: Int = 10) { mutations(limit: $limit) { mutation_id chromosome position } } ``` Variables: ```json { "limit": 25 } ``` ## Filtering Examples ### Get high-quality mutations ```graphql query { mutations(gene: "KRAS", limit: 100) { mutation_id quality consequence } } ``` ### Get patients by demographics ```graphql 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