pharmaobservatory 0.1.10 → 0.1.12

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.
@@ -40,13 +40,13 @@ module PharmaObservatory
40
40
  # The provider company name as it appears in the papers.
41
41
  attr_accessor :provider_name
42
42
 
43
- # The provider's legal entity key, where the marketplace match resolves one.
43
+ # The organization the provider's company name resolved to (the member organization, not its parent); null when the provider is ambiguous or unresolved. Reached by the rung named in provider_org_match_tier.
44
44
  attr_accessor :provider_org_id
45
45
 
46
- # How the provider was resolved to an organization. rx_provider_link: through its marketplace supplier. unresolved: no organization, the provider stays a name. The remaining values are reserved for resolution rungs that have not shipped.
46
+ # How the provider was resolved to an organization, first rung that yields one organization wins. alias_exact: a reviewed brand alias, then exactly one organization carries the name. name_exact: exactly one organization carries the name. parent_unanimous: several organizations carry the name and all roll up to one parent, which is the organization. sponsor_key: the name is a trial-sponsor key. rx_provider_link: through its marketplace supplier. ambiguous: organizations under more than one parent carry the name, so none is chosen. unresolved: no organization, the provider stays a name.
47
47
  attr_accessor :provider_org_match_tier
48
48
 
49
- # The ultimate parent organization of the provider's organization; null when the provider has no organization.
49
+ # The resolved parent of provider_org_id in the organization hierarchy (the organization itself when it has none); null when the provider has no organization. The hierarchy is not guaranteed correct for every company, so read it with provider_org_match_tier.
50
50
  attr_accessor :provider_parent_org_id
51
51
 
52
52
  # The provider's company key.
@@ -100,14 +100,65 @@ module PharmaObservatory
100
100
  # True when the provider matches a marketplace supplier or at least two papers name the pair.
101
101
  attr_accessor :meets_curated_threshold
102
102
 
103
- # The company-level class. diagnostic_provider makes or supplies the diagnostic assay; reagent_supplier is the vendor whose kit appears in a methods section; context_dependent, pharma_or_other and not_a_company are the other decisions; unclassified means no decision yet.
104
- attr_accessor :assay_provider_class
103
+ # The strongest US FDA or CMS record found for the pair. companion_diagnostic: the provider holds an FDA companion diagnostic for the biomarker. fda_cleared_specific_assay: a cleared or approved device of the provider that the paper names and that measures the biomarker. fda_cleared_for_biomarker: the provider holds a cleared or approved IVD under a product code for the biomarker. clia_testing_service: the provider is named as a testing service and its own organization holds a CLIA certificate. fda_ivd_company_only: the provider holds some cleared or approved IVD, none matched to the biomarker. none: no FDA record found.
104
+ attr_accessor :regulatory_evidence_kind
105
105
 
106
- # Where the class decision came from; null when unclassified.
107
- attr_accessor :assay_provider_class_source
106
+ # True when regulatory_evidence_kind is one of the first four kinds, a record that concerns the biomarker rather than only the company.
107
+ attr_accessor :has_fda_record_for_biomarker
108
108
 
109
- # When the class was decided, in UTC; null when unclassified.
110
- attr_accessor :assay_provider_class_decided_at
109
+ # Every level that held for the pair, strongest first; empty when none did.
110
+ attr_accessor :regulatory_evidence_reasons
111
+
112
+ # The 510(k) clearances in the in-vitro diagnostic review panels held by the provider's organization (or, when it holds none, by organizations under its parent; fda_company_match_rung says which). Null for a provider that did not resolve to an organization.
113
+ attr_accessor :n_fda_ivd_510k
114
+
115
+ # The PMA approvals (distinct approval numbers) in the in-vitro diagnostic review panels held by the provider's organization or its parent family, on the same rung as n_fda_ivd_510k. Null for a provider that did not resolve to an organization.
116
+ attr_accessor :n_fda_ivd_pma
117
+
118
+ # org: the counted records are held by the provider's own organization. parent: by organizations under the same resolved parent. Null when the provider holds none.
119
+ attr_accessor :fda_company_match_rung
120
+
121
+ # The provider's 510(k) clearances under a product code mapped to this biomarker. Null when the provider or the biomarker did not resolve.
122
+ attr_accessor :n_fda_analyte_510k
123
+
124
+ # The provider's PMA approvals under a product code mapped to this biomarker. Null when the provider or the biomarker did not resolve.
125
+ attr_accessor :n_fda_analyte_pma
126
+
127
+ # The FDA product codes behind n_fda_analyte_510k and n_fda_analyte_pma.
128
+ attr_accessor :fda_analyte_product_codes
129
+
130
+ # The FDA database page of the provider's most recent record under a product code for this biomarker.
131
+ attr_accessor :fda_analyte_fda_url
132
+
133
+ # True when a paper names a cleared or approved device of this provider that measures this biomarker. The device name matches the paper's assay name, or the company's own quote, and the device's analyte agrees with the biomarker.
134
+ attr_accessor :specific_assay_matched
135
+
136
+ # The 510(k) device name or PMA trade name of the matched device; the best match when several matched. Null when no device matched.
137
+ attr_accessor :specific_assay_device_name
138
+
139
+ # The 510(k) number of the matched device; null when the match is a PMA or there is none.
140
+ attr_accessor :specific_assay_k_number
141
+
142
+ # The PMA number of the matched device; null when the match is a 510(k) or there is none.
143
+ attr_accessor :specific_assay_pma_number
144
+
145
+ # The FDA database page of the matched device.
146
+ attr_accessor :specific_assay_fda_url
147
+
148
+ # The trigram text similarity (0 to 1) of the larger of the two text clauses that matched the device, the paper's assay name or the company's quote against the device name.
149
+ attr_accessor :specific_assay_similarity
150
+
151
+ # The FDA companion diagnostic list entries for this biomarker from this provider's organization (or its parent family). Null when the provider or the biomarker did not resolve.
152
+ attr_accessor :n_cdx_entries
153
+
154
+ # The names of those companion diagnostics.
155
+ attr_accessor :cdx_diagnostic_names
156
+
157
+ # The CLIA (US clinical laboratory) certificates held by the provider's organization, or by organizations under its parent when it holds none (clia_match_rung says which). A certificate licenses a lab; it is not evidence that any named assay is run. Null for a provider that did not resolve to an organization.
158
+ attr_accessor :n_clia_certificates
159
+
160
+ # org: the counted certificates are held by the provider's own organization. parent: by organizations under the same resolved parent. Null when the provider holds none.
161
+ attr_accessor :clia_match_rung
111
162
 
112
163
  # Attribute mapping from ruby-style variable name to JSON key.
113
164
  def self.attribute_map
@@ -140,9 +191,26 @@ module PharmaObservatory
140
191
  :'most_recent_pmid' => :'most_recent_pmid',
141
192
  :'most_recent_title' => :'most_recent_title',
142
193
  :'meets_curated_threshold' => :'meets_curated_threshold',
143
- :'assay_provider_class' => :'assay_provider_class',
144
- :'assay_provider_class_source' => :'assay_provider_class_source',
145
- :'assay_provider_class_decided_at' => :'assay_provider_class_decided_at'
194
+ :'regulatory_evidence_kind' => :'regulatory_evidence_kind',
195
+ :'has_fda_record_for_biomarker' => :'has_fda_record_for_biomarker',
196
+ :'regulatory_evidence_reasons' => :'regulatory_evidence_reasons',
197
+ :'n_fda_ivd_510k' => :'n_fda_ivd_510k',
198
+ :'n_fda_ivd_pma' => :'n_fda_ivd_pma',
199
+ :'fda_company_match_rung' => :'fda_company_match_rung',
200
+ :'n_fda_analyte_510k' => :'n_fda_analyte_510k',
201
+ :'n_fda_analyte_pma' => :'n_fda_analyte_pma',
202
+ :'fda_analyte_product_codes' => :'fda_analyte_product_codes',
203
+ :'fda_analyte_fda_url' => :'fda_analyte_fda_url',
204
+ :'specific_assay_matched' => :'specific_assay_matched',
205
+ :'specific_assay_device_name' => :'specific_assay_device_name',
206
+ :'specific_assay_k_number' => :'specific_assay_k_number',
207
+ :'specific_assay_pma_number' => :'specific_assay_pma_number',
208
+ :'specific_assay_fda_url' => :'specific_assay_fda_url',
209
+ :'specific_assay_similarity' => :'specific_assay_similarity',
210
+ :'n_cdx_entries' => :'n_cdx_entries',
211
+ :'cdx_diagnostic_names' => :'cdx_diagnostic_names',
212
+ :'n_clia_certificates' => :'n_clia_certificates',
213
+ :'clia_match_rung' => :'clia_match_rung'
146
214
  }
147
215
  end
148
216
 
@@ -187,9 +255,26 @@ module PharmaObservatory
187
255
  :'most_recent_pmid' => :'String',
188
256
  :'most_recent_title' => :'String',
189
257
  :'meets_curated_threshold' => :'Boolean',
190
- :'assay_provider_class' => :'String',
191
- :'assay_provider_class_source' => :'String',
192
- :'assay_provider_class_decided_at' => :'Time'
258
+ :'regulatory_evidence_kind' => :'String',
259
+ :'has_fda_record_for_biomarker' => :'Boolean',
260
+ :'regulatory_evidence_reasons' => :'Array<String>',
261
+ :'n_fda_ivd_510k' => :'Integer',
262
+ :'n_fda_ivd_pma' => :'Integer',
263
+ :'fda_company_match_rung' => :'String',
264
+ :'n_fda_analyte_510k' => :'Integer',
265
+ :'n_fda_analyte_pma' => :'Integer',
266
+ :'fda_analyte_product_codes' => :'Array<String>',
267
+ :'fda_analyte_fda_url' => :'String',
268
+ :'specific_assay_matched' => :'Boolean',
269
+ :'specific_assay_device_name' => :'String',
270
+ :'specific_assay_k_number' => :'String',
271
+ :'specific_assay_pma_number' => :'String',
272
+ :'specific_assay_fda_url' => :'String',
273
+ :'specific_assay_similarity' => :'Float',
274
+ :'n_cdx_entries' => :'Integer',
275
+ :'cdx_diagnostic_names' => :'Array<String>',
276
+ :'n_clia_certificates' => :'Integer',
277
+ :'clia_match_rung' => :'String'
193
278
  }
194
279
  end
195
280
 
@@ -224,9 +309,26 @@ module PharmaObservatory
224
309
  :'most_recent_pmid',
225
310
  :'most_recent_title',
226
311
  :'meets_curated_threshold',
227
- :'assay_provider_class',
228
- :'assay_provider_class_source',
229
- :'assay_provider_class_decided_at'
312
+ :'regulatory_evidence_kind',
313
+ :'has_fda_record_for_biomarker',
314
+ :'regulatory_evidence_reasons',
315
+ :'n_fda_ivd_510k',
316
+ :'n_fda_ivd_pma',
317
+ :'fda_company_match_rung',
318
+ :'n_fda_analyte_510k',
319
+ :'n_fda_analyte_pma',
320
+ :'fda_analyte_product_codes',
321
+ :'fda_analyte_fda_url',
322
+ :'specific_assay_matched',
323
+ :'specific_assay_device_name',
324
+ :'specific_assay_k_number',
325
+ :'specific_assay_pma_number',
326
+ :'specific_assay_fda_url',
327
+ :'specific_assay_similarity',
328
+ :'n_cdx_entries',
329
+ :'cdx_diagnostic_names',
330
+ :'n_clia_certificates',
331
+ :'clia_match_rung'
230
332
  ])
231
333
  end
232
334
 
@@ -358,16 +460,90 @@ module PharmaObservatory
358
460
  self.meets_curated_threshold = attributes[:'meets_curated_threshold']
359
461
  end
360
462
 
361
- if attributes.key?(:'assay_provider_class')
362
- self.assay_provider_class = attributes[:'assay_provider_class']
463
+ if attributes.key?(:'regulatory_evidence_kind')
464
+ self.regulatory_evidence_kind = attributes[:'regulatory_evidence_kind']
465
+ end
466
+
467
+ if attributes.key?(:'has_fda_record_for_biomarker')
468
+ self.has_fda_record_for_biomarker = attributes[:'has_fda_record_for_biomarker']
469
+ end
470
+
471
+ if attributes.key?(:'regulatory_evidence_reasons')
472
+ if (value = attributes[:'regulatory_evidence_reasons']).is_a?(Array)
473
+ self.regulatory_evidence_reasons = value
474
+ end
475
+ end
476
+
477
+ if attributes.key?(:'n_fda_ivd_510k')
478
+ self.n_fda_ivd_510k = attributes[:'n_fda_ivd_510k']
479
+ end
480
+
481
+ if attributes.key?(:'n_fda_ivd_pma')
482
+ self.n_fda_ivd_pma = attributes[:'n_fda_ivd_pma']
483
+ end
484
+
485
+ if attributes.key?(:'fda_company_match_rung')
486
+ self.fda_company_match_rung = attributes[:'fda_company_match_rung']
487
+ end
488
+
489
+ if attributes.key?(:'n_fda_analyte_510k')
490
+ self.n_fda_analyte_510k = attributes[:'n_fda_analyte_510k']
491
+ end
492
+
493
+ if attributes.key?(:'n_fda_analyte_pma')
494
+ self.n_fda_analyte_pma = attributes[:'n_fda_analyte_pma']
495
+ end
496
+
497
+ if attributes.key?(:'fda_analyte_product_codes')
498
+ if (value = attributes[:'fda_analyte_product_codes']).is_a?(Array)
499
+ self.fda_analyte_product_codes = value
500
+ end
501
+ end
502
+
503
+ if attributes.key?(:'fda_analyte_fda_url')
504
+ self.fda_analyte_fda_url = attributes[:'fda_analyte_fda_url']
505
+ end
506
+
507
+ if attributes.key?(:'specific_assay_matched')
508
+ self.specific_assay_matched = attributes[:'specific_assay_matched']
509
+ end
510
+
511
+ if attributes.key?(:'specific_assay_device_name')
512
+ self.specific_assay_device_name = attributes[:'specific_assay_device_name']
513
+ end
514
+
515
+ if attributes.key?(:'specific_assay_k_number')
516
+ self.specific_assay_k_number = attributes[:'specific_assay_k_number']
517
+ end
518
+
519
+ if attributes.key?(:'specific_assay_pma_number')
520
+ self.specific_assay_pma_number = attributes[:'specific_assay_pma_number']
521
+ end
522
+
523
+ if attributes.key?(:'specific_assay_fda_url')
524
+ self.specific_assay_fda_url = attributes[:'specific_assay_fda_url']
525
+ end
526
+
527
+ if attributes.key?(:'specific_assay_similarity')
528
+ self.specific_assay_similarity = attributes[:'specific_assay_similarity']
529
+ end
530
+
531
+ if attributes.key?(:'n_cdx_entries')
532
+ self.n_cdx_entries = attributes[:'n_cdx_entries']
533
+ end
534
+
535
+ if attributes.key?(:'cdx_diagnostic_names')
536
+ if (value = attributes[:'cdx_diagnostic_names']).is_a?(Array)
537
+ self.cdx_diagnostic_names = value
538
+ end
363
539
  end
364
540
 
365
- if attributes.key?(:'assay_provider_class_source')
366
- self.assay_provider_class_source = attributes[:'assay_provider_class_source']
541
+ if attributes.key?(:'n_clia_certificates')
542
+ self.n_clia_certificates = attributes[:'n_clia_certificates']
367
543
  end
368
544
 
369
- if attributes.key?(:'assay_provider_class_decided_at')
370
- self.assay_provider_class_decided_at = attributes[:'assay_provider_class_decided_at']
545
+ if attributes.key?(:'clia_match_rung')
546
+ self.clia_match_rung = attributes[:'clia_match_rung']
371
547
  end
372
548
  end
373
549
 
@@ -419,9 +595,26 @@ module PharmaObservatory
419
595
  most_recent_pmid == o.most_recent_pmid &&
420
596
  most_recent_title == o.most_recent_title &&
421
597
  meets_curated_threshold == o.meets_curated_threshold &&
422
- assay_provider_class == o.assay_provider_class &&
423
- assay_provider_class_source == o.assay_provider_class_source &&
424
- assay_provider_class_decided_at == o.assay_provider_class_decided_at
598
+ regulatory_evidence_kind == o.regulatory_evidence_kind &&
599
+ has_fda_record_for_biomarker == o.has_fda_record_for_biomarker &&
600
+ regulatory_evidence_reasons == o.regulatory_evidence_reasons &&
601
+ n_fda_ivd_510k == o.n_fda_ivd_510k &&
602
+ n_fda_ivd_pma == o.n_fda_ivd_pma &&
603
+ fda_company_match_rung == o.fda_company_match_rung &&
604
+ n_fda_analyte_510k == o.n_fda_analyte_510k &&
605
+ n_fda_analyte_pma == o.n_fda_analyte_pma &&
606
+ fda_analyte_product_codes == o.fda_analyte_product_codes &&
607
+ fda_analyte_fda_url == o.fda_analyte_fda_url &&
608
+ specific_assay_matched == o.specific_assay_matched &&
609
+ specific_assay_device_name == o.specific_assay_device_name &&
610
+ specific_assay_k_number == o.specific_assay_k_number &&
611
+ specific_assay_pma_number == o.specific_assay_pma_number &&
612
+ specific_assay_fda_url == o.specific_assay_fda_url &&
613
+ specific_assay_similarity == o.specific_assay_similarity &&
614
+ n_cdx_entries == o.n_cdx_entries &&
615
+ cdx_diagnostic_names == o.cdx_diagnostic_names &&
616
+ n_clia_certificates == o.n_clia_certificates &&
617
+ clia_match_rung == o.clia_match_rung
425
618
  end
426
619
 
427
620
  # @see the `==` method
@@ -433,7 +626,7 @@ module PharmaObservatory
433
626
  # Calculates hash code according to all attributes.
434
627
  # @return [Integer] Hash code
435
628
  def hash
436
- [route_key, biomarker_key, biomarker_id, biomarker_display_name, gene_resolution_status, provider_key, provider_role, provider_name, provider_org_id, provider_org_match_tier, provider_parent_org_id, provider_company_id, provider_company_name, provider_group_id, provider_group_name, rx_matched, rx_provider_id, rx_provider_name, rx_provider_slug, has_clinical_validation, has_analytical_validation, n_papers, n_dated_papers, n_undated_papers, most_recent_published_at, most_recent_pmid, most_recent_title, meets_curated_threshold, assay_provider_class, assay_provider_class_source, assay_provider_class_decided_at].hash
629
+ [route_key, biomarker_key, biomarker_id, biomarker_display_name, gene_resolution_status, provider_key, provider_role, provider_name, provider_org_id, provider_org_match_tier, provider_parent_org_id, provider_company_id, provider_company_name, provider_group_id, provider_group_name, rx_matched, rx_provider_id, rx_provider_name, rx_provider_slug, has_clinical_validation, has_analytical_validation, n_papers, n_dated_papers, n_undated_papers, most_recent_published_at, most_recent_pmid, most_recent_title, meets_curated_threshold, regulatory_evidence_kind, has_fda_record_for_biomarker, regulatory_evidence_reasons, n_fda_ivd_510k, n_fda_ivd_pma, fda_company_match_rung, n_fda_analyte_510k, n_fda_analyte_pma, fda_analyte_product_codes, fda_analyte_fda_url, specific_assay_matched, specific_assay_device_name, specific_assay_k_number, specific_assay_pma_number, specific_assay_fda_url, specific_assay_similarity, n_cdx_entries, cdx_diagnostic_names, n_clia_certificates, clia_match_rung].hash
437
630
  end
438
631
 
439
632
  # Builds the object from hash
@@ -94,8 +94,8 @@ module PharmaObservatory
94
94
  # Assay-provider suppliers named.
95
95
  attr_accessor :n_assay_provider_suppliers
96
96
 
97
- # Of those, diagnostic providers.
98
- attr_accessor :n_diagnostic_provider_suppliers
97
+ # Of those, providers with an FDA record found for the biomarker (a companion diagnostic, a cleared or approved device the paper names, a cleared or approved IVD under the analyte's product code, or a CLIA-certified lab that ran the test). US only; no record found is not a statement about validation. Null when no assay provider is named for the biomarker.
98
+ attr_accessor :n_fda_evidence_providers
99
99
 
100
100
  # Attribute mapping from ruby-style variable name to JSON key.
101
101
  def self.attribute_map
@@ -126,7 +126,7 @@ module PharmaObservatory
126
126
  :'has_analytical_validation_evidence' => :'has_analytical_validation_evidence',
127
127
  :'n_assay_provider_papers' => :'n_assay_provider_papers',
128
128
  :'n_assay_provider_suppliers' => :'n_assay_provider_suppliers',
129
- :'n_diagnostic_provider_suppliers' => :'n_diagnostic_provider_suppliers'
129
+ :'n_fda_evidence_providers' => :'n_fda_evidence_providers'
130
130
  }
131
131
  end
132
132
 
@@ -169,7 +169,7 @@ module PharmaObservatory
169
169
  :'has_analytical_validation_evidence' => :'Boolean',
170
170
  :'n_assay_provider_papers' => :'Integer',
171
171
  :'n_assay_provider_suppliers' => :'Integer',
172
- :'n_diagnostic_provider_suppliers' => :'Integer'
172
+ :'n_fda_evidence_providers' => :'Integer'
173
173
  }
174
174
  end
175
175
 
@@ -202,7 +202,7 @@ module PharmaObservatory
202
202
  :'has_analytical_validation_evidence',
203
203
  :'n_assay_provider_papers',
204
204
  :'n_assay_provider_suppliers',
205
- :'n_diagnostic_provider_suppliers'
205
+ :'n_fda_evidence_providers'
206
206
  ])
207
207
  end
208
208
 
@@ -326,8 +326,8 @@ module PharmaObservatory
326
326
  self.n_assay_provider_suppliers = attributes[:'n_assay_provider_suppliers']
327
327
  end
328
328
 
329
- if attributes.key?(:'n_diagnostic_provider_suppliers')
330
- self.n_diagnostic_provider_suppliers = attributes[:'n_diagnostic_provider_suppliers']
329
+ if attributes.key?(:'n_fda_evidence_providers')
330
+ self.n_fda_evidence_providers = attributes[:'n_fda_evidence_providers']
331
331
  end
332
332
  end
333
333
 
@@ -377,7 +377,7 @@ module PharmaObservatory
377
377
  has_analytical_validation_evidence == o.has_analytical_validation_evidence &&
378
378
  n_assay_provider_papers == o.n_assay_provider_papers &&
379
379
  n_assay_provider_suppliers == o.n_assay_provider_suppliers &&
380
- n_diagnostic_provider_suppliers == o.n_diagnostic_provider_suppliers
380
+ n_fda_evidence_providers == o.n_fda_evidence_providers
381
381
  end
382
382
 
383
383
  # @see the `==` method
@@ -389,7 +389,7 @@ module PharmaObservatory
389
389
  # Calculates hash code according to all attributes.
390
390
  # @return [Integer] Hash code
391
391
  def hash
392
- [biomarker_id, route_key, biomarker_kind, identity_status, display_name, parent_biomarker_id, gene_symbol, amino_acid_change, target_id, hgnc_id, uniprot_accession, target_protein_name, feature_code, feature_type, evidence_tier, evidence_tier_label, n_fda_cdx_assertions, n_fda_bqp_assertions, n_cancer_actionable_cgi, n_ot_association, n_trial_mention, n_publication_variant_mentions, has_clinical_validation_evidence, has_analytical_validation_evidence, n_assay_provider_papers, n_assay_provider_suppliers, n_diagnostic_provider_suppliers].hash
392
+ [biomarker_id, route_key, biomarker_kind, identity_status, display_name, parent_biomarker_id, gene_symbol, amino_acid_change, target_id, hgnc_id, uniprot_accession, target_protein_name, feature_code, feature_type, evidence_tier, evidence_tier_label, n_fda_cdx_assertions, n_fda_bqp_assertions, n_cancer_actionable_cgi, n_ot_association, n_trial_mention, n_publication_variant_mentions, has_clinical_validation_evidence, has_analytical_validation_evidence, n_assay_provider_papers, n_assay_provider_suppliers, n_fda_evidence_providers].hash
393
393
  end
394
394
 
395
395
  # Builds the object from hash
@@ -22,7 +22,7 @@ module PharmaObservatory
22
22
  # The company's display name: its own legal entity's name where one is known.
23
23
  attr_accessor :company_name
24
24
 
25
- # Which source supplied the name: gleif_legal_name, edgar_registrant, ror or sponsor_display_name.
25
+ # Which source supplied the name: gleif_legal_name, edgar_registrant, ror, edgar_current_name or sponsor_display_name.
26
26
  attr_accessor :name_basis
27
27
 
28
28
  # Country of the company's own legal entity, as the source states it.
@@ -55,6 +55,12 @@ module PharmaObservatory
55
55
  # True when the drug has been withdrawn from the market.
56
56
  attr_accessor :withdrawn
57
57
 
58
+ # True when the sponsor is judged to develop the drug (an experimental arm, a regulatory holder, or an inferred lead); false when it is the backbone or comparator of a combination, one of many leads of a crowded drug, or not the holder of a generic. Every row is kept; this column labels it.
59
+ attr_accessor :owned
60
+
61
+ # Why owned is what it is: experimental_arm, regulatory_holder or inferred_lead (owned), or backbone, comparator, crowded_not_lead or generic_not_holder (not owned). inferred_lead is an inference made where the trials give no arm evidence either way.
62
+ attr_accessor :ownership_basis
63
+
58
64
  # Attribute mapping from ruby-style variable name to JSON key.
59
65
  def self.attribute_map
60
66
  {
@@ -70,7 +76,9 @@ module PharmaObservatory
70
76
  :'n_trials' => :'n_trials',
71
77
  :'n_active' => :'n_active',
72
78
  :'last_year' => :'last_year',
73
- :'withdrawn' => :'withdrawn'
79
+ :'withdrawn' => :'withdrawn',
80
+ :'owned' => :'owned',
81
+ :'ownership_basis' => :'ownership_basis'
74
82
  }
75
83
  end
76
84
 
@@ -99,7 +107,9 @@ module PharmaObservatory
99
107
  :'n_trials' => :'Integer',
100
108
  :'n_active' => :'Integer',
101
109
  :'last_year' => :'Integer',
102
- :'withdrawn' => :'Boolean'
110
+ :'withdrawn' => :'Boolean',
111
+ :'owned' => :'Boolean',
112
+ :'ownership_basis' => :'String'
103
113
  }
104
114
  end
105
115
 
@@ -118,7 +128,9 @@ module PharmaObservatory
118
128
  :'n_trials',
119
129
  :'n_active',
120
130
  :'last_year',
121
- :'withdrawn'
131
+ :'withdrawn',
132
+ :'owned',
133
+ :'ownership_basis'
122
134
  ])
123
135
  end
124
136
 
@@ -189,6 +201,14 @@ module PharmaObservatory
189
201
  if attributes.key?(:'withdrawn')
190
202
  self.withdrawn = attributes[:'withdrawn']
191
203
  end
204
+
205
+ if attributes.key?(:'owned')
206
+ self.owned = attributes[:'owned']
207
+ end
208
+
209
+ if attributes.key?(:'ownership_basis')
210
+ self.ownership_basis = attributes[:'ownership_basis']
211
+ end
192
212
  end
193
213
 
194
214
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -223,7 +243,9 @@ module PharmaObservatory
223
243
  n_trials == o.n_trials &&
224
244
  n_active == o.n_active &&
225
245
  last_year == o.last_year &&
226
- withdrawn == o.withdrawn
246
+ withdrawn == o.withdrawn &&
247
+ owned == o.owned &&
248
+ ownership_basis == o.ownership_basis
227
249
  end
228
250
 
229
251
  # @see the `==` method
@@ -235,7 +257,7 @@ module PharmaObservatory
235
257
  # Calculates hash code according to all attributes.
236
258
  # @return [Integer] Hash code
237
259
  def hash
238
- [sponsor_org_id, sponsor_name, sponsor_company_id, sponsor_company_name, sponsor_group_id, sponsor_group_name, drug_id, drug_name, max_phase, n_trials, n_active, last_year, withdrawn].hash
260
+ [sponsor_org_id, sponsor_name, sponsor_company_id, sponsor_company_name, sponsor_group_id, sponsor_group_name, drug_id, drug_name, max_phase, n_trials, n_active, last_year, withdrawn, owned, ownership_basis].hash
239
261
  end
240
262
 
241
263
  # Builds the object from hash
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module PharmaObservatory
17
- # One row of the company_competitors dataset: one row per ordered company pair: a company and one of its top 25 competitors. A grouped request returns the group columns and the measures instead, as additional properties.
17
+ # One row of the company_competitors dataset: one row per ordered company pair: a company and one of the top 25 companies of each competitor_class by program overlap. A grouped request returns the group columns and the measures instead, as additional properties.
18
18
  class CompanyCompetitorsRow
19
19
  # Company level: the company the row is about; the entry key for the companies object type.
20
20
  attr_accessor :company_id
@@ -40,7 +40,13 @@ module PharmaObservatory
40
40
  # Display name of the competitor's group.
41
41
  attr_accessor :competitor_group_name
42
42
 
43
- # The competitor's rank for the company by competitor_score (1 is the highest).
43
+ # The competitor's class: industry, or non_industry (not classed as industry by the sponsor-class rule: academic, hospital, government, nonprofit, and any record the rule does not reach). competitor_rank restarts at 1 within each class, so filter or sort on this column first.
44
+ attr_accessor :competitor_class
45
+
46
+ # How many companies of this competitor_class were candidates (a shared target, or an indication overlap above the similarity floor) before the top 25 were kept. The same value on every row of one company and class.
47
+ attr_accessor :n_class_candidates
48
+
49
+ # The competitor's rank within its competitor_class for the company by competitor_score (1 is the highest).
44
50
  attr_accessor :competitor_rank
45
51
 
46
52
  # 100 times the weighted mean of the four similarities below, rounded to four places.
@@ -102,6 +108,8 @@ module PharmaObservatory
102
108
  :'competitor_company_name' => :'competitor_company_name',
103
109
  :'competitor_group_id' => :'competitor_group_id',
104
110
  :'competitor_group_name' => :'competitor_group_name',
111
+ :'competitor_class' => :'competitor_class',
112
+ :'n_class_candidates' => :'n_class_candidates',
105
113
  :'competitor_rank' => :'competitor_rank',
106
114
  :'competitor_score' => :'competitor_score',
107
115
  :'target_sim' => :'target_sim',
@@ -143,6 +151,8 @@ module PharmaObservatory
143
151
  :'competitor_company_name' => :'String',
144
152
  :'competitor_group_id' => :'String',
145
153
  :'competitor_group_name' => :'String',
154
+ :'competitor_class' => :'String',
155
+ :'n_class_candidates' => :'Integer',
146
156
  :'competitor_rank' => :'Integer',
147
157
  :'competitor_score' => :'Float',
148
158
  :'target_sim' => :'Float',
@@ -174,6 +184,8 @@ module PharmaObservatory
174
184
  :'competitor_company_name',
175
185
  :'competitor_group_id',
176
186
  :'competitor_group_name',
187
+ :'competitor_class',
188
+ :'n_class_candidates',
177
189
  :'competitor_rank',
178
190
  :'competitor_score',
179
191
  :'target_sim',
@@ -242,6 +254,14 @@ module PharmaObservatory
242
254
  self.competitor_group_name = attributes[:'competitor_group_name']
243
255
  end
244
256
 
257
+ if attributes.key?(:'competitor_class')
258
+ self.competitor_class = attributes[:'competitor_class']
259
+ end
260
+
261
+ if attributes.key?(:'n_class_candidates')
262
+ self.n_class_candidates = attributes[:'n_class_candidates']
263
+ end
264
+
245
265
  if attributes.key?(:'competitor_rank')
246
266
  self.competitor_rank = attributes[:'competitor_rank']
247
267
  end
@@ -345,6 +365,8 @@ module PharmaObservatory
345
365
  competitor_company_name == o.competitor_company_name &&
346
366
  competitor_group_id == o.competitor_group_id &&
347
367
  competitor_group_name == o.competitor_group_name &&
368
+ competitor_class == o.competitor_class &&
369
+ n_class_candidates == o.n_class_candidates &&
348
370
  competitor_rank == o.competitor_rank &&
349
371
  competitor_score == o.competitor_score &&
350
372
  target_sim == o.target_sim &&
@@ -373,7 +395,7 @@ module PharmaObservatory
373
395
  # Calculates hash code according to all attributes.
374
396
  # @return [Integer] Hash code
375
397
  def hash
376
- [company_id, company_name, group_id, group_name, competitor_company_id, competitor_company_name, competitor_group_id, competitor_group_name, competitor_rank, competitor_score, target_sim, mechanism_sim, indication_sim, phase_sim, n_shared_targets, n_shared_mechanisms, n_shared_indications, n_phase_overlap_targets, n_company_targets, n_competitor_targets, n_company_indications, n_competitor_indications, top_shared_targets, top_shared_indications, top_shared_mechanisms].hash
398
+ [company_id, company_name, group_id, group_name, competitor_company_id, competitor_company_name, competitor_group_id, competitor_group_name, competitor_class, n_class_candidates, competitor_rank, competitor_score, target_sim, mechanism_sim, indication_sim, phase_sim, n_shared_targets, n_shared_mechanisms, n_shared_indications, n_phase_overlap_targets, n_company_targets, n_competitor_targets, n_company_indications, n_competitor_indications, top_shared_targets, top_shared_indications, top_shared_mechanisms].hash
377
399
  end
378
400
 
379
401
  # Builds the object from hash
@@ -64,6 +64,12 @@ module PharmaObservatory
64
64
  # approved, active or abandoned.
65
65
  attr_accessor :lifecycle
66
66
 
67
+ # True when the sponsor is judged to develop the drug (an experimental arm, a regulatory holder, or an inferred lead); false when it is the backbone or comparator of a combination, one of many leads of a crowded drug, or not the holder of a generic. Every row is kept; this column labels it.
68
+ attr_accessor :owned
69
+
70
+ # Why owned is what it is: experimental_arm, regulatory_holder or inferred_lead (owned), or backbone, comparator, crowded_not_lead or generic_not_holder (not owned). inferred_lead is an inference made where the trials give no arm evidence either way.
71
+ attr_accessor :ownership_basis
72
+
67
73
  # Disability-adjusted life years (DALYs, millions) of the condition's global burden, from the Global Burden of Disease (GBD) 2021 study of the Institute for Health Metrics and Evaluation (IHME). Null for a caller without the licence for this column; see withheld_columns.
68
74
  attr_accessor :dalys_millions
69
75
 
@@ -86,6 +92,8 @@ module PharmaObservatory
86
92
  :'last_year' => :'last_year',
87
93
  :'withdrawn' => :'withdrawn',
88
94
  :'lifecycle' => :'lifecycle',
95
+ :'owned' => :'owned',
96
+ :'ownership_basis' => :'ownership_basis',
89
97
  :'dalys_millions' => :'dalys_millions'
90
98
  }
91
99
  end
@@ -119,6 +127,8 @@ module PharmaObservatory
119
127
  :'last_year' => :'Integer',
120
128
  :'withdrawn' => :'Boolean',
121
129
  :'lifecycle' => :'String',
130
+ :'owned' => :'Boolean',
131
+ :'ownership_basis' => :'String',
122
132
  :'dalys_millions' => :'Float'
123
133
  }
124
134
  end
@@ -142,6 +152,8 @@ module PharmaObservatory
142
152
  :'last_year',
143
153
  :'withdrawn',
144
154
  :'lifecycle',
155
+ :'owned',
156
+ :'ownership_basis',
145
157
  :'dalys_millions'
146
158
  ])
147
159
  end
@@ -226,6 +238,14 @@ module PharmaObservatory
226
238
  self.lifecycle = attributes[:'lifecycle']
227
239
  end
228
240
 
241
+ if attributes.key?(:'owned')
242
+ self.owned = attributes[:'owned']
243
+ end
244
+
245
+ if attributes.key?(:'ownership_basis')
246
+ self.ownership_basis = attributes[:'ownership_basis']
247
+ end
248
+
229
249
  if attributes.key?(:'dalys_millions')
230
250
  self.dalys_millions = attributes[:'dalys_millions']
231
251
  end
@@ -267,6 +287,8 @@ module PharmaObservatory
267
287
  last_year == o.last_year &&
268
288
  withdrawn == o.withdrawn &&
269
289
  lifecycle == o.lifecycle &&
290
+ owned == o.owned &&
291
+ ownership_basis == o.ownership_basis &&
270
292
  dalys_millions == o.dalys_millions
271
293
  end
272
294
 
@@ -279,7 +301,7 @@ module PharmaObservatory
279
301
  # Calculates hash code according to all attributes.
280
302
  # @return [Integer] Hash code
281
303
  def hash
282
- [sponsor_org_id, sponsor_name, sponsor_company_id, sponsor_company_name, sponsor_group_id, sponsor_group_name, drug_id, drug_name, condition_id, condition_name, max_phase, n_trials, n_active, last_year, withdrawn, lifecycle, dalys_millions].hash
304
+ [sponsor_org_id, sponsor_name, sponsor_company_id, sponsor_company_name, sponsor_group_id, sponsor_group_name, drug_id, drug_name, condition_id, condition_name, max_phase, n_trials, n_active, last_year, withdrawn, lifecycle, owned, ownership_basis, dalys_millions].hash
283
305
  end
284
306
 
285
307
  # Builds the object from hash