Commit fa9a8e43 authored by Andrey Azov's avatar Andrey Azov
Browse files

Update file for competing transcript models — add notes

parent 7b46965f
# Example
let-7 gene from Caenorhabditis elegans, which encodes microRNAs.
# Testing how a non-coding gene will fit into our model
## Example gene
let-7 gene from Caenorhabditis elegans, which encodes 2 microRNAs
# Comments from Kevin and Michael
......@@ -12,8 +13,17 @@ let-7 gene from Caenorhabditis elegans, which encodes microRNAs.
- "Examples of such products include MicroRNA (miRNA), circular RNA (circRNA) or piwi-interacting RNA (piRNA), and they commonly play a role in gene expression"
- "I don't think 14 closing braces is enough!"
## Nullable fields
Barely works for C.elegans (modelling the precursor/mature produce relationships), but doesn't work for human, because we do not keep information about pre-miRNA in human database
## Model 1: fitting the gene in the same structure as used for protein-coding genes
### Notes
- The JSON below is using the `splicing` field to represent parent-child relationships between a transcript (pre-miRNA) and a product (mature miRNAs). Here, the transcript is a pre-miRNA, and the `splicing` field contains mature miRNA. This barely works for C.elegans, but will not work for human, because we do not keep information about pre-miRNA in human database.
- Questions to the JSON below:
- Do individual splicing structures need a `cdna` field? If mature miRNAs have a `cdna` field, then why doesn't premature miRNA have it?
- The `default` field in individual splicing events becomes misleading
- Should `start_phase` and `end_phase` for spliced exons be -1 or null?
- It is, of course, possible to set the whole `splicing` field to `null`
- Then the pre-miRNA and the two miRNAs can be modelled as three independent transcripts (as Ensembl is presenting them now)
- However, this necessitates having the `exons` field at the top level of a transcript (in the current model, exons are placed inside the `splicing` field)
```js
{
......@@ -164,7 +174,13 @@ Barely works for C.elegans (modelling the precursor/mature produce relationships
}
```
## Typed transcript
## Model 2: non-coding transcripts are different from proteint coding transcripts and therefore have a different set of fields
### Notes
- Pre-miRNA and the two mature miRNAs are modelled here as three independent transcripts
- They do not have a `splicing` field, and therefore, do not have a `product`.
- They do have a top-level `exons` field
- Which raises a problem with ranking of exons. There was a special `index` field in `spliced_exons` in the model with `splicing`, where we recorded the ordering of exons; but we've lost this field in the JSON below
```js
{
......@@ -259,8 +275,8 @@ Barely works for C.elegans (modelling the precursor/mature produce relationships
"type": "exon",
"relative_slice": {
"location": {
"start": 16,
"end": 36,
"start": 1,
"end": 21,
"length": 21
}
},
......@@ -282,14 +298,69 @@ Barely works for C.elegans (modelling the precursor/mature produce relationships
}
]
},
{
"_comment": "This is a mi-RNA",
"type": "miRNA",
"stable_id": "F59G1.6b",
"relative_slice": {
"location": {
"start": 54,
"end": 75,
"length": 22
}
},
"slice": {
"location": {
"start": 5902308,
"end": 5902329,
"length": 22
},
"region": {
"name": "II",
"code": "chromosome",
"strand": {
"code": "reverse",
"value": -1
}
}
},
"exons": [
{
"stable_id": "F59G1.6a.e1",
"type": "exon",
"relative_slice": {
"location": {
"start": 1,
"end": 22,
"length": 22
}
},
"slice": {
"location": {
"start": 5902308,
"end": 5902329,
"length": 22
},
"region": {
"name": "II",
"code": "chromosome",
"strand": {
"code": "reverse",
"value": -1
}
}
}
}
]
}
]
}
}
```
## Example GraphQL for typed transcripts
## Example GraphQL queries
### For nullability
### For model 1 (same structure, nullable fields)
```graphql
{
......@@ -316,7 +387,7 @@ Barely works for C.elegans (modelling the precursor/mature produce relationships
}
```
### For Union
### For model 2 (polymorphic transcripts; need to resolve the union)
```graphql
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment