@apollo-annotation/shared 0.1.19 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.d.ts +33 -0
  2. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js +83 -0
  3. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js.map +1 -0
  4. package/dist/Changes/AddAssemblyFromExternalChange.d.ts +34 -0
  5. package/dist/Changes/AddAssemblyFromExternalChange.js +97 -0
  6. package/dist/Changes/AddAssemblyFromExternalChange.js.map +1 -0
  7. package/dist/Changes/AddAssemblyFromFileChange.d.ts +43 -0
  8. package/dist/Changes/AddAssemblyFromFileChange.js +140 -0
  9. package/dist/Changes/AddAssemblyFromFileChange.js.map +1 -0
  10. package/dist/Changes/AddFeatureChange.d.ts +35 -0
  11. package/dist/Changes/AddFeatureChange.js +169 -0
  12. package/dist/Changes/AddFeatureChange.js.map +1 -0
  13. package/dist/Changes/AddFeaturesFromFileChange.d.ts +32 -0
  14. package/dist/Changes/AddFeaturesFromFileChange.js +76 -0
  15. package/dist/Changes/AddFeaturesFromFileChange.js.map +1 -0
  16. package/dist/Changes/AddRefSeqAliasesChange.d.ts +20 -0
  17. package/dist/Changes/AddRefSeqAliasesChange.js +61 -0
  18. package/dist/Changes/AddRefSeqAliasesChange.js.map +1 -0
  19. package/dist/Changes/DeleteAssemblyChange.d.ts +18 -0
  20. package/dist/Changes/DeleteAssemblyChange.js +72 -0
  21. package/dist/Changes/DeleteAssemblyChange.js.map +1 -0
  22. package/dist/Changes/DeleteFeatureChange.d.ts +42 -0
  23. package/dist/Changes/DeleteFeatureChange.js +143 -0
  24. package/dist/Changes/DeleteFeatureChange.js.map +1 -0
  25. package/dist/Changes/DeleteUserChange.d.ts +25 -0
  26. package/dist/Changes/DeleteUserChange.js +53 -0
  27. package/dist/Changes/DeleteUserChange.js.map +1 -0
  28. package/dist/Changes/FeatureAttributeChange.d.ts +31 -0
  29. package/dist/Changes/FeatureAttributeChange.js +112 -0
  30. package/dist/Changes/FeatureAttributeChange.js.map +1 -0
  31. package/dist/Changes/FromFileBaseChange.d.ts +9 -0
  32. package/dist/Changes/FromFileBaseChange.js +187 -0
  33. package/dist/Changes/FromFileBaseChange.js.map +1 -0
  34. package/dist/Changes/ImportJBrowseConfigChange.d.ts +43 -0
  35. package/dist/Changes/ImportJBrowseConfigChange.js +67 -0
  36. package/dist/Changes/ImportJBrowseConfigChange.js.map +1 -0
  37. package/dist/Changes/LocationEndChange.d.ts +32 -0
  38. package/dist/Changes/LocationEndChange.js +129 -0
  39. package/dist/Changes/LocationEndChange.js.map +1 -0
  40. package/dist/Changes/LocationStartChange.d.ts +32 -0
  41. package/dist/Changes/LocationStartChange.js +129 -0
  42. package/dist/Changes/LocationStartChange.js.map +1 -0
  43. package/dist/Changes/StrandChange.d.ts +31 -0
  44. package/dist/Changes/StrandChange.js +114 -0
  45. package/dist/Changes/StrandChange.js.map +1 -0
  46. package/dist/Changes/TypeChange.d.ts +31 -0
  47. package/dist/Changes/TypeChange.js +114 -0
  48. package/dist/Changes/TypeChange.js.map +1 -0
  49. package/dist/Changes/UserChange.d.ts +25 -0
  50. package/dist/Changes/UserChange.js +51 -0
  51. package/dist/Changes/UserChange.js.map +1 -0
  52. package/dist/Changes/index.d.ts +50 -0
  53. package/dist/Changes/index.js +55 -0
  54. package/dist/Changes/index.js.map +1 -0
  55. package/dist/Checks/CDSCheck.d.ts +8 -0
  56. package/dist/Checks/CDSCheck.js +197 -0
  57. package/dist/Checks/CDSCheck.js.map +1 -0
  58. package/dist/Checks/index.d.ts +1 -0
  59. package/dist/Checks/index.js +5 -0
  60. package/dist/Checks/index.js.map +1 -0
  61. package/dist/Common/index.d.ts +1 -0
  62. package/dist/Common/index.js +5 -0
  63. package/dist/Common/index.js.map +1 -0
  64. package/dist/Common/jwtPayload.d.ts +12 -0
  65. package/dist/Common/jwtPayload.js +16 -0
  66. package/dist/Common/jwtPayload.js.map +1 -0
  67. package/dist/GFF3/gff3ToAnnotationFeature.d.ts +3 -0
  68. package/dist/GFF3/gff3ToAnnotationFeature.js +211 -0
  69. package/dist/GFF3/gff3ToAnnotationFeature.js.map +1 -0
  70. package/dist/GFF3/gff3ToAnnotationFeature.test.d.ts +1 -0
  71. package/dist/GFF3/gff3ToAnnotationFeature.test.js +174 -0
  72. package/dist/GFF3/gff3ToAnnotationFeature.test.js.map +1 -0
  73. package/dist/GFF3/gffReservedKeys.d.ts +5 -0
  74. package/dist/GFF3/gffReservedKeys.js +34 -0
  75. package/dist/GFF3/gffReservedKeys.js.map +1 -0
  76. package/dist/GFF3/index.d.ts +2 -0
  77. package/dist/GFF3/index.js +6 -0
  78. package/dist/GFF3/index.js.map +1 -0
  79. package/dist/Messages.d.ts +28 -0
  80. package/dist/Messages.js +3 -0
  81. package/dist/Messages.js.map +1 -0
  82. package/dist/Operations/GetAssembliesOperation.d.ts +13 -0
  83. package/dist/Operations/GetAssembliesOperation.js +20 -0
  84. package/dist/Operations/GetAssembliesOperation.js.map +1 -0
  85. package/dist/Operations/GetFeaturesOperation.d.ts +26 -0
  86. package/dist/Operations/GetFeaturesOperation.js +42 -0
  87. package/dist/Operations/GetFeaturesOperation.js.map +1 -0
  88. package/dist/Operations/index.d.ts +8 -0
  89. package/dist/Operations/index.js +10 -0
  90. package/dist/Operations/index.js.map +1 -0
  91. package/dist/Validations/CoreValidation.d.ts +17 -0
  92. package/dist/Validations/CoreValidation.js +36 -0
  93. package/dist/Validations/CoreValidation.js.map +1 -0
  94. package/dist/Validations/ParentChildValidation.d.ts +17 -0
  95. package/dist/Validations/ParentChildValidation.js +61 -0
  96. package/dist/Validations/ParentChildValidation.js.map +1 -0
  97. package/dist/Validations/Validation.d.ts +27 -0
  98. package/dist/Validations/Validation.js +27 -0
  99. package/dist/Validations/Validation.js.map +1 -0
  100. package/dist/Validations/ValidationSet.d.ts +24 -0
  101. package/dist/Validations/ValidationSet.js +86 -0
  102. package/dist/Validations/ValidationSet.js.map +1 -0
  103. package/dist/Validations/index.d.ts +4 -0
  104. package/dist/Validations/index.js +8 -0
  105. package/dist/Validations/index.js.map +1 -0
  106. package/dist/Validations/soSequenceTypes.d.ts +2 -0
  107. package/dist/Validations/soSequenceTypes.js +1868 -0
  108. package/dist/Validations/soSequenceTypes.js.map +1 -0
  109. package/dist/index.d.ts +8 -0
  110. package/dist/index.js +12 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/tsconfig.tsbuildinfo +1 -0
  113. package/dist/util.d.ts +4 -0
  114. package/dist/util.js +102 -0
  115. package/dist/util.js.map +1 -0
  116. package/package.json +8 -5
  117. package/src/Changes/AddAssemblyAndFeaturesFromFileChange.ts +6 -5
  118. package/src/Changes/AddAssemblyFromFileChange.ts +126 -41
  119. package/src/Checks/CDSCheck.ts +202 -252
  120. package/src/GFF3/gff3ToAnnotationFeature.test.ts +165 -5
  121. package/src/GFF3/gff3ToAnnotationFeature.ts +16 -16
  122. package/src/util.ts +1 -0
  123. package/test_data/braker.gff +13 -0
  124. package/test_data/example01.gff3 +26 -0
  125. package/test_data/example01.json +236 -0
  126. package/test_data/example02.json +225 -0
  127. package/test_data/example04.json +225 -0
  128. package/test_data/example05.gff3 +30 -0
  129. package/test_data/example06.gff3 +30 -0
  130. package/test_data/example07.gff3 +30 -0
  131. package/test_data/gene_mrna.gff3 +4 -0
  132. package/test_data/gene_representations.gff3 +1781 -0
  133. package/test_data/one_cds.gff3 +9 -0
  134. package/test_data/one_cds.json +67 -0
  135. package/test_data/two_cds.gff3 +9 -0
  136. package/test_data/two_cds.json +67 -0
@@ -80,8 +80,9 @@ function getFeatureMinMax(gff3Feature: GFF3Feature): [number, number] {
80
80
 
81
81
  function convertFeatureAttributes(
82
82
  gff3Feature: GFF3Feature,
83
- ): Record<string, string[]> | undefined {
84
- const convertedAttributes: Record<string, string[]> = {}
83
+ ): Record<string, string[] | undefined> | undefined {
84
+ const convertedAttributes: Record<string, string[] | undefined> | undefined =
85
+ {}
85
86
  const scores = gff3Feature
86
87
  .map((f) => f.score)
87
88
  .filter((score) => score !== null)
@@ -106,22 +107,21 @@ function convertFeatureAttributes(
106
107
  if (sources.length > 0) {
107
108
  let [source] = sources
108
109
  if (sources.length > 1) {
109
- const sourceSet = new Set(...sources)
110
+ const sourceSet = new Set(sources)
110
111
  source = [...sourceSet].join(',')
111
112
  }
112
113
  convertedAttributes.gff_source = [source]
113
114
  }
114
115
  if (attributesCollections.length > 0) {
115
- const newAttributes: Record<string, string[] | undefined> = {}
116
116
  for (const attributesCollection of attributesCollections) {
117
117
  for (const [key, val] of Object.entries(attributesCollection)) {
118
118
  if (!val || key === 'Parent') {
119
119
  continue
120
120
  }
121
121
  const newKey = isGFFReservedAttribute(key) ? gffToInternal[key] : key
122
- const existingVal = newAttributes[newKey]
122
+ const existingVal = convertedAttributes[newKey]
123
123
  if (existingVal) {
124
- const valSet = new Set(...existingVal, ...val)
124
+ const valSet = new Set([...existingVal, ...val])
125
125
  convertedAttributes[newKey] = [...valSet]
126
126
  } else {
127
127
  convertedAttributes[newKey] = val
@@ -158,7 +158,10 @@ function convertChildren(
158
158
  const [firstChildFeatureLocation] = childFeature
159
159
  if (
160
160
  firstChildFeatureLocation.type === 'three_prime_UTR' ||
161
- firstChildFeatureLocation.type === 'five_prime_UTR'
161
+ firstChildFeatureLocation.type === 'five_prime_UTR' ||
162
+ firstChildFeatureLocation.type === 'intron' ||
163
+ firstChildFeatureLocation.type === 'start_codon' ||
164
+ firstChildFeatureLocation.type === 'stop_codon'
162
165
  ) {
163
166
  continue
164
167
  }
@@ -232,20 +235,17 @@ function processCDS(
232
235
  groupedLocations.push([location])
233
236
  continue
234
237
  }
235
- const lastGroupLastLocation = lastGroup.at(-1)
236
- if (!lastGroupLastLocation) {
237
- throw new Error('Got group with no locations')
238
- }
239
- if (
238
+ const overlaps = lastGroup.some((lastGroupLoc) =>
240
239
  doesIntersect2(
241
240
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
242
- lastGroupLastLocation.start!,
243
- lastGroupLastLocation.end!,
241
+ lastGroupLoc.start!,
242
+ lastGroupLoc.end!,
244
243
  location.start!,
245
244
  location.end!,
246
245
  /* eslint-enable @typescript-eslint/no-non-null-assertion */
247
- )
248
- ) {
246
+ ),
247
+ )
248
+ if (overlaps) {
249
249
  groupedLocations.push([location])
250
250
  } else {
251
251
  lastGroup.push(location)
package/src/util.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
+
2
3
  import { AnnotationFeatureSnapshot } from '@apollo-annotation/mst'
3
4
  import { GFF3Feature } from '@gmod/gff'
4
5
 
@@ -0,0 +1,13 @@
1
+ ##gff-version 3
2
+ CM033580.1 AUGUSTUS gene 15529 16566 0.92 - . ID=g1;
3
+ CM033580.1 AUGUSTUS mRNA 15529 16566 0.92 - . ID=g1.t1;Parent=g1;
4
+ CM033580.1 AUGUSTUS stop_codon 15529 15531 . - 0 ID=g1.t1.stop1;Parent=g1.t1;
5
+ CM033580.1 AUGUSTUS CDS 15529 15659 0.92 - 2 ID=g1.t1.CDS1;Parent=g1.t1;
6
+ CM033580.1 AUGUSTUS exon 15529 15659 . - . ID=g1.t1.exon1;Parent=g1.t1;
7
+ CM033580.1 AUGUSTUS intron 15660 16112 0.96 - . ID=g1.t1.intron1;Parent=g1.t1;
8
+ CM033580.1 AUGUSTUS CDS 16113 16314 0.96 - 0 ID=g1.t1.CDS2;Parent=g1.t1;
9
+ CM033580.1 AUGUSTUS exon 16113 16314 . - . ID=g1.t1.exon2;Parent=g1.t1;
10
+ CM033580.1 AUGUSTUS intron 16315 16536 0.96 - . ID=g1.t1.intron2;Parent=g1.t1;
11
+ CM033580.1 AUGUSTUS CDS 16537 16566 0.99 - 0 ID=g1.t1.CDS3;Parent=g1.t1;
12
+ CM033580.1 AUGUSTUS exon 16537 16566 . - . ID=g1.t1.exon3;Parent=g1.t1;
13
+ CM033580.1 AUGUSTUS start_codon 16564 16566 . - 0 ID=g1.t1.start1;Parent=g1.t1;
@@ -0,0 +1,26 @@
1
+ ##gff-version 3
2
+ ##sequence-region chr1 1000 9000
3
+ #example01
4
+ chr1 . gene 1000 9000 . + . ID=gene10001;Name=EDEN
5
+ chr1 . TF_binding_site 1000 1012 . + . ID=tfbs10001;Parent=gene10001
6
+ chr1 . mRNA 1050 9000 . + . ID=mRNA10001;Parent=gene10001;Name=EDEN.1
7
+ chr1 . mRNA 1050 9000 . + . ID=mRNA10002;Parent=gene10001;Name=EDEN.2
8
+ chr1 . mRNA 1300 9000 . + . ID=mRNA10003;Parent=gene10001;Name=EDEN.3
9
+ chr1 . exon 1050 1500 . + . ID=exon10001;Parent=mRNA10001,mRNA10002
10
+ chr1 . exon 1300 1500 . + . ID=exon10002;Parent=mRNA10003
11
+ chr1 . exon 3000 3902 . + . ID=exon10003;Parent=mRNA10001,mRNA10003
12
+ chr1 . exon 5000 5500 . + . ID=exon10004;Parent=mRNA10001,mRNA10002,mRNA10003
13
+ chr1 . exon 7000 9000 . + . ID=exon10005;Parent=mRNA10001,mRNA10002,mRNA10003
14
+ chr1 . CDS 1201 1500 . + 0 ID=cds10001;Parent=mRNA10001;Name=edenprotein.1
15
+ chr1 . CDS 3000 3902 . + 0 ID=cds10001;Parent=mRNA10001;Name=edenprotein.1
16
+ chr1 . CDS 5000 5500 . + 0 ID=cds10001;Parent=mRNA10001;Name=edenprotein.1
17
+ chr1 . CDS 7000 7600 . + 0 ID=cds10001;Parent=mRNA10001;Name=edenprotein.1
18
+ chr1 . CDS 1201 1500 . + 0 ID=cds10002;Parent=mRNA10002;Name=edenprotein.2
19
+ chr1 . CDS 5000 5500 . + 0 ID=cds10002;Parent=mRNA10002;Name=edenprotein.2
20
+ chr1 . CDS 7000 7600 . + 0 ID=cds10002;Parent=mRNA10002;Name=edenprotein.2
21
+ chr1 . CDS 3301 3902 . + 0 ID=cds10003;Parent=mRNA10003;Name=edenprotein.3
22
+ chr1 . CDS 5000 5500 . + 1 ID=cds10003;Parent=mRNA10003;Name=edenprotein.3
23
+ chr1 . CDS 7000 7600 . + 1 ID=cds10003;Parent=mRNA10003;Name=edenprotein.3
24
+ chr1 . CDS 3391 3902 . + 0 ID=cds10004;Parent=mRNA10003;Name=edenprotein.4
25
+ chr1 . CDS 5000 5500 . + 1 ID=cds10004;Parent=mRNA10003;Name=edenprotein.4
26
+ chr1 . CDS 7000 7600 . + 1 ID=cds10004;Parent=mRNA10003;Name=edenprotein.4
@@ -0,0 +1,236 @@
1
+ {
2
+ "_id": "66e049f17b9cedae9ad89108",
3
+ "refSeq": "chr1",
4
+ "type": "gene",
5
+ "min": 999,
6
+ "max": 9000,
7
+ "strand": 1,
8
+ "children": {
9
+ "66e049f17b9cedae9ad890f5": {
10
+ "_id": "66e049f17b9cedae9ad890f5",
11
+ "refSeq": "chr1",
12
+ "type": "TF_binding_site",
13
+ "min": 999,
14
+ "max": 1012,
15
+ "strand": 1,
16
+ "attributes": {
17
+ "gff_id": ["tfbs10001"]
18
+ }
19
+ },
20
+ "66e049f17b9cedae9ad890fb": {
21
+ "_id": "66e049f17b9cedae9ad890fb",
22
+ "refSeq": "chr1",
23
+ "type": "mRNA",
24
+ "min": 1049,
25
+ "max": 9000,
26
+ "strand": 1,
27
+ "children": {
28
+ "66e049f17b9cedae9ad890f6": {
29
+ "_id": "66e049f17b9cedae9ad890f6",
30
+ "refSeq": "chr1",
31
+ "type": "exon",
32
+ "min": 1049,
33
+ "max": 1500,
34
+ "strand": 1,
35
+ "attributes": {
36
+ "gff_id": ["exon10002"]
37
+ }
38
+ },
39
+ "66e049f17b9cedae9ad890f7": {
40
+ "_id": "66e049f17b9cedae9ad890f7",
41
+ "refSeq": "chr1",
42
+ "type": "exon",
43
+ "min": 2999,
44
+ "max": 3902,
45
+ "strand": 1,
46
+ "attributes": {
47
+ "gff_id": ["exon10003"]
48
+ }
49
+ },
50
+ "66e049f17b9cedae9ad890f8": {
51
+ "_id": "66e049f17b9cedae9ad890f8",
52
+ "refSeq": "chr1",
53
+ "type": "exon",
54
+ "min": 4999,
55
+ "max": 5500,
56
+ "strand": 1,
57
+ "attributes": {
58
+ "gff_id": ["exon10004"]
59
+ }
60
+ },
61
+ "66e049f17b9cedae9ad890f9": {
62
+ "_id": "66e049f17b9cedae9ad890f9",
63
+ "refSeq": "chr1",
64
+ "type": "exon",
65
+ "min": 6999,
66
+ "max": 9000,
67
+ "strand": 1,
68
+ "attributes": {
69
+ "gff_id": ["exon10005"]
70
+ }
71
+ },
72
+ "66e049f17b9cedae9ad890fa": {
73
+ "_id": "66e049f17b9cedae9ad890fa",
74
+ "refSeq": "chr1",
75
+ "type": "CDS",
76
+ "min": 1200,
77
+ "max": 7600,
78
+ "strand": 1,
79
+ "attributes": {
80
+ "gff_id": ["cds10001"],
81
+ "gff_name": ["edenprotein.1"]
82
+ }
83
+ }
84
+ },
85
+ "attributes": {
86
+ "gff_id": ["mRNA10001"],
87
+ "gff_name": ["EDEN.1"]
88
+ }
89
+ },
90
+ "66e049f17b9cedae9ad89100": {
91
+ "_id": "66e049f17b9cedae9ad89100",
92
+ "refSeq": "chr1",
93
+ "type": "mRNA",
94
+ "min": 1049,
95
+ "max": 9000,
96
+ "strand": 1,
97
+ "children": {
98
+ "66e049f17b9cedae9ad890fc": {
99
+ "_id": "66e049f17b9cedae9ad890fc",
100
+ "refSeq": "chr1",
101
+ "type": "exon",
102
+ "min": 1049,
103
+ "max": 1500,
104
+ "strand": 1,
105
+ "attributes": {
106
+ "gff_id": ["exon10002"]
107
+ }
108
+ },
109
+ "66e049f17b9cedae9ad890fd": {
110
+ "_id": "66e049f17b9cedae9ad890fd",
111
+ "refSeq": "chr1",
112
+ "type": "exon",
113
+ "min": 4999,
114
+ "max": 5500,
115
+ "strand": 1,
116
+ "attributes": {
117
+ "gff_id": ["exon10004"]
118
+ }
119
+ },
120
+ "66e049f17b9cedae9ad890fe": {
121
+ "_id": "66e049f17b9cedae9ad890fe",
122
+ "refSeq": "chr1",
123
+ "type": "exon",
124
+ "min": 6999,
125
+ "max": 9000,
126
+ "strand": 1,
127
+ "attributes": {
128
+ "gff_id": ["exon10005"]
129
+ }
130
+ },
131
+ "66e049f17b9cedae9ad890ff": {
132
+ "_id": "66e049f17b9cedae9ad890ff",
133
+ "refSeq": "chr1",
134
+ "type": "CDS",
135
+ "min": 1200,
136
+ "max": 7600,
137
+ "strand": 1,
138
+ "attributes": {
139
+ "gff_id": ["cds10002"],
140
+ "gff_name": ["edenprotein.2"]
141
+ }
142
+ }
143
+ },
144
+ "attributes": {
145
+ "gff_id": ["mRNA10002"],
146
+ "gff_name": ["EDEN.2"]
147
+ }
148
+ },
149
+ "66e049f17b9cedae9ad89107": {
150
+ "_id": "66e049f17b9cedae9ad89107",
151
+ "refSeq": "chr1",
152
+ "type": "mRNA",
153
+ "min": 1299,
154
+ "max": 9000,
155
+ "strand": 1,
156
+ "children": {
157
+ "66e049f17b9cedae9ad89101": {
158
+ "_id": "66e049f17b9cedae9ad89101",
159
+ "refSeq": "chr1",
160
+ "type": "exon",
161
+ "min": 1299,
162
+ "max": 1500,
163
+ "strand": 1,
164
+ "attributes": {
165
+ "gff_id": ["exon10001"]
166
+ }
167
+ },
168
+ "66e049f17b9cedae9ad89102": {
169
+ "_id": "66e049f17b9cedae9ad89102",
170
+ "refSeq": "chr1",
171
+ "type": "exon",
172
+ "min": 2999,
173
+ "max": 3902,
174
+ "strand": 1,
175
+ "attributes": {
176
+ "gff_id": ["exon10003"]
177
+ }
178
+ },
179
+ "66e049f17b9cedae9ad89103": {
180
+ "_id": "66e049f17b9cedae9ad89103",
181
+ "refSeq": "chr1",
182
+ "type": "exon",
183
+ "min": 4999,
184
+ "max": 5500,
185
+ "strand": 1,
186
+ "attributes": {
187
+ "gff_id": ["exon10004"]
188
+ }
189
+ },
190
+ "66e049f17b9cedae9ad89104": {
191
+ "_id": "66e049f17b9cedae9ad89104",
192
+ "refSeq": "chr1",
193
+ "type": "exon",
194
+ "min": 6999,
195
+ "max": 9000,
196
+ "strand": 1,
197
+ "attributes": {
198
+ "gff_id": ["exon10005"]
199
+ }
200
+ },
201
+ "66e049f17b9cedae9ad89105": {
202
+ "_id": "66e049f17b9cedae9ad89105",
203
+ "refSeq": "chr1",
204
+ "type": "CDS",
205
+ "min": 3300,
206
+ "max": 7600,
207
+ "strand": 1,
208
+ "attributes": {
209
+ "gff_id": ["cds10003"],
210
+ "gff_name": ["edenprotein.3"]
211
+ }
212
+ },
213
+ "66e049f17b9cedae9ad89106": {
214
+ "_id": "66e049f17b9cedae9ad89106",
215
+ "refSeq": "chr1",
216
+ "type": "CDS",
217
+ "min": 3390,
218
+ "max": 7600,
219
+ "strand": 1,
220
+ "attributes": {
221
+ "gff_id": ["cds10004"],
222
+ "gff_name": ["edenprotein.4"]
223
+ }
224
+ }
225
+ },
226
+ "attributes": {
227
+ "gff_id": ["mRNA10003"],
228
+ "gff_name": ["EDEN.3"]
229
+ }
230
+ }
231
+ },
232
+ "attributes": {
233
+ "gff_id": ["gene10001"],
234
+ "gff_name": ["EDEN"]
235
+ }
236
+ }
@@ -0,0 +1,225 @@
1
+ {
2
+ "_id": "66e049609048deab4117a33e",
3
+ "refSeq": "chr1",
4
+ "type": "gene",
5
+ "min": 10999,
6
+ "max": 19000,
7
+ "strand": 1,
8
+ "children": {
9
+ "66e049609048deab4117a331": {
10
+ "_id": "66e049609048deab4117a331",
11
+ "refSeq": "chr1",
12
+ "type": "mRNA",
13
+ "min": 11049,
14
+ "max": 19000,
15
+ "strand": 1,
16
+ "children": {
17
+ "66e049609048deab4117a32c": {
18
+ "_id": "66e049609048deab4117a32c",
19
+ "refSeq": "chr1",
20
+ "type": "exon",
21
+ "min": 11049,
22
+ "max": 11500,
23
+ "strand": 1,
24
+ "attributes": {
25
+ "gff_id": ["exon20001"]
26
+ }
27
+ },
28
+ "66e049609048deab4117a32d": {
29
+ "_id": "66e049609048deab4117a32d",
30
+ "refSeq": "chr1",
31
+ "type": "exon",
32
+ "min": 12999,
33
+ "max": 13902,
34
+ "strand": 1,
35
+ "attributes": {
36
+ "gff_id": ["exon20004"]
37
+ }
38
+ },
39
+ "66e049609048deab4117a32e": {
40
+ "_id": "66e049609048deab4117a32e",
41
+ "refSeq": "chr1",
42
+ "type": "exon",
43
+ "min": 14999,
44
+ "max": 15500,
45
+ "strand": 1,
46
+ "attributes": {
47
+ "gff_id": ["exon20006"]
48
+ }
49
+ },
50
+ "66e049609048deab4117a32f": {
51
+ "_id": "66e049609048deab4117a32f",
52
+ "refSeq": "chr1",
53
+ "type": "exon",
54
+ "min": 16999,
55
+ "max": 19000,
56
+ "strand": 1,
57
+ "attributes": {
58
+ "gff_id": ["exon20009"]
59
+ }
60
+ },
61
+ "66e049609048deab4117a330": {
62
+ "_id": "66e049609048deab4117a330",
63
+ "refSeq": "chr1",
64
+ "type": "CDS",
65
+ "min": 11200,
66
+ "max": 17600,
67
+ "strand": 1,
68
+ "attributes": {
69
+ "gff_id": ["cds20001"],
70
+ "gff_name": ["edenprotein.1"]
71
+ }
72
+ }
73
+ },
74
+ "attributes": {
75
+ "gff_id": ["mRNA20001"],
76
+ "gff_name": ["EDEN.1"]
77
+ }
78
+ },
79
+ "66e049609048deab4117a336": {
80
+ "_id": "66e049609048deab4117a336",
81
+ "refSeq": "chr1",
82
+ "type": "mRNA",
83
+ "min": 11049,
84
+ "max": 19000,
85
+ "strand": 1,
86
+ "children": {
87
+ "66e049609048deab4117a332": {
88
+ "_id": "66e049609048deab4117a332",
89
+ "refSeq": "chr1",
90
+ "type": "exon",
91
+ "min": 11049,
92
+ "max": 11500,
93
+ "strand": 1,
94
+ "attributes": {
95
+ "gff_id": ["exon20002"]
96
+ }
97
+ },
98
+ "66e049609048deab4117a333": {
99
+ "_id": "66e049609048deab4117a333",
100
+ "refSeq": "chr1",
101
+ "type": "exon",
102
+ "min": 14999,
103
+ "max": 15500,
104
+ "strand": 1,
105
+ "attributes": {
106
+ "gff_id": ["exon20007"]
107
+ }
108
+ },
109
+ "66e049609048deab4117a334": {
110
+ "_id": "66e049609048deab4117a334",
111
+ "refSeq": "chr1",
112
+ "type": "exon",
113
+ "min": 16999,
114
+ "max": 19000,
115
+ "strand": 1,
116
+ "attributes": {
117
+ "gff_id": ["exon20010"]
118
+ }
119
+ },
120
+ "66e049609048deab4117a335": {
121
+ "_id": "66e049609048deab4117a335",
122
+ "refSeq": "chr1",
123
+ "type": "CDS",
124
+ "min": 11200,
125
+ "max": 17600,
126
+ "strand": 1,
127
+ "attributes": {
128
+ "gff_id": ["cds20002"],
129
+ "gff_name": ["edenprotein.2"]
130
+ }
131
+ }
132
+ },
133
+ "attributes": {
134
+ "gff_id": ["mRNA20002"],
135
+ "gff_name": ["EDEN.2"]
136
+ }
137
+ },
138
+ "66e049609048deab4117a33d": {
139
+ "_id": "66e049609048deab4117a33d",
140
+ "refSeq": "chr1",
141
+ "type": "mRNA",
142
+ "min": 11299,
143
+ "max": 19000,
144
+ "strand": 1,
145
+ "children": {
146
+ "66e049609048deab4117a337": {
147
+ "_id": "66e049609048deab4117a337",
148
+ "refSeq": "chr1",
149
+ "type": "exon",
150
+ "min": 11299,
151
+ "max": 11500,
152
+ "strand": 1,
153
+ "attributes": {
154
+ "gff_id": ["exon20003"]
155
+ }
156
+ },
157
+ "66e049609048deab4117a338": {
158
+ "_id": "66e049609048deab4117a338",
159
+ "refSeq": "chr1",
160
+ "type": "exon",
161
+ "min": 12999,
162
+ "max": 13902,
163
+ "strand": 1,
164
+ "attributes": {
165
+ "gff_id": ["exon20005"]
166
+ }
167
+ },
168
+ "66e049609048deab4117a339": {
169
+ "_id": "66e049609048deab4117a339",
170
+ "refSeq": "chr1",
171
+ "type": "exon",
172
+ "min": 14999,
173
+ "max": 15500,
174
+ "strand": 1,
175
+ "attributes": {
176
+ "gff_id": ["exon20008"]
177
+ }
178
+ },
179
+ "66e049609048deab4117a33a": {
180
+ "_id": "66e049609048deab4117a33a",
181
+ "refSeq": "chr1",
182
+ "type": "exon",
183
+ "min": 16999,
184
+ "max": 19000,
185
+ "strand": 1,
186
+ "attributes": {
187
+ "gff_id": ["exon20011"]
188
+ }
189
+ },
190
+ "66e049609048deab4117a33b": {
191
+ "_id": "66e049609048deab4117a33b",
192
+ "refSeq": "chr1",
193
+ "type": "CDS",
194
+ "min": 13300,
195
+ "max": 17600,
196
+ "strand": 1,
197
+ "attributes": {
198
+ "gff_id": ["cds20003"],
199
+ "gff_name": ["edenprotein.3"]
200
+ }
201
+ },
202
+ "66e049609048deab4117a33c": {
203
+ "_id": "66e049609048deab4117a33c",
204
+ "refSeq": "chr1",
205
+ "type": "CDS",
206
+ "min": 13390,
207
+ "max": 17600,
208
+ "strand": 1,
209
+ "attributes": {
210
+ "gff_id": ["cds20004"],
211
+ "gff_name": ["edenprotein.4"]
212
+ }
213
+ }
214
+ },
215
+ "attributes": {
216
+ "gff_id": ["mRNA20003"],
217
+ "gff_name": ["EDEN.3"]
218
+ }
219
+ }
220
+ },
221
+ "attributes": {
222
+ "gff_id": ["gene20001"],
223
+ "gff_name": ["EDEN"]
224
+ }
225
+ }