CancerAtHomeV2 / GRAPHQL_EXAMPLES.md
Mentors4EDU's picture
Upload 33 files
7a92197 verified
# 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