Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: integrate PanelApp for gene-phenotype links (#225) #377

Merged
merged 10 commits into from
Jan 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions protos/annonars/genes/base.proto
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,120 @@ message GtexRecord {
repeated GtexTissueRecord records = 4;
}

// Entry in PanelApp.
message PanelAppRecord {
/// Gene identity information.
message GeneData {
// HGNC ID.
optional string hgnc_id = 1;
// HGNC gene symbol.
optional string hgnc_symbol = 2;
// Gene symbol.
optional string gene_symbol = 3;
}

// Enumeration for entity types.
enum EntityType {
// Unknown
ENTITY_TYPE_UNKNOWN = 0;
// Gene
ENTITY_TYPE_GENE = 1;
// Short Tandem Repeat
ENTITY_TYPE_STR = 2;
// Region
ENTITY_TYPE_REGION = 3;
}

// Enumeration for confidence levels.
enum ConfidenceLevel {
// Unknown
CONFIDENCE_LEVEL_UNKNOWN = 0;
// None
CONFIDENCE_LEVEL_NONE = 1;
// Red
CONFIDENCE_LEVEL_RED = 2;
// Amber
CONFIDENCE_LEVEL_AMBER = 3;
// Green
CONFIDENCE_LEVEL_GREEN = 4;
}

// Enumeration for penetrance.
enum Penetrance {
// Unknown
PENETRANCE_UNKNOWN = 0;
// Complete
PENETRANCE_COMPLETE = 1;
// Incomplete
PENETRANCE_INCOMPLETE = 2;
}

// Message for panel statistics.
message PanelStats {
// Number of genes.
uint32 number_of_genes = 1;
// Number of STRs.
uint32 number_of_strs = 2;
// Number of regions.
uint32 number_of_regions = 3;
}

// Message for panel types.
message PanelType {
// Type name.
string name = 1;
// Slug.
string slug = 2;
// Description.
string description = 3;
}

// Message for panel information.
message Panel {
// Panel ID.
uint32 id = 1;
// Panel hash ID.
optional string hash_id = 2;
// Panel name.
string name = 3;
// Disease group.
string disease_group = 4;
// Disease subgroup.
string disease_sub_group = 5;
// Version
string version = 6;
// Creation date of version.
string version_created = 7;
// Relevant disorders.
repeated string relevant_disorders = 8;
// Stats.
PanelStats stats = 9;
// Panel types.
repeated PanelType types = 10;
}

// Gene identity information.
GeneData gene_data = 1;
// Entity type.
EntityType entity_type = 2;
// Entity name.
string entity_name = 3;
// Confidence level.
ConfidenceLevel confidence_level = 4;
// Penetrance.
Penetrance penetrance = 5;
// Publications.
repeated string publications = 6;
// Evidence.
repeated string evidence = 7;
// Phenotypes.
repeated string phenotypes = 8;
// Mode of inheritance.
string mode_of_inheritance = 9;
// Panel.
Panel panel = 10;
}

// Entry in the genes RocksDB database.
message Record {
// Information from the ACMG secondary finding list.
Expand Down Expand Up @@ -842,4 +956,6 @@ message Record {
DominoRecord domino = 12;
// DECIPHER HI score.
DecipherHiRecord decipher_hi = 13;
// GenomicsEngland PanelApp gene information.
repeated PanelAppRecord panelapp = 14;
}
Loading
Loading