File size: 3,994 Bytes
7a92197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# 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