ideogram
Version:
Chromosome visualization for the web
967 lines (937 loc) • 39.2 kB
JavaScript
/**
* @fileoverview Colors for protein features, e.g. domains, families, and sites
*
* The color design is intended to visually distinguish protein features, so
* that patterns can be recognized among interacting and paralogous genes.
* Colors for each domain were manually assigned, in an iterative process of
* browsing gene leads ideogram and setting colors per that intent. Color
* sometimes overlaps with function, and sometimes not function but moreso
* visually distinction from other protein features in a given gene leads view.
*/
// Default
const grey = '#AAA';
const greyLine = '#555';
const lightGrey = '#D8D8D8';
const lightGreyLine = '#888';
const darkGrey = '#888';
const darkGreyLine = '#333';
// const red = '#F00';
// const redLines = '#800';
const red = '#F55';
const redLine = '#A00';
const magenta = '#922D5E';
const magentaLines = '#D26D9E';
const faintRed = '#CAA';
const faintRedLine = '#866';
const redderFaintRed = '#E88';
const redderFaintRedLine = '#A55';
const pink = '#FFC0CB';
const pinkLine = '#CF909B';
const blue = '#99D';
const blueLine = '#22C';
const lightBlue = '#CCF';
const lightBlueLine = '#33D';
const veryLightBlue = '#EEF';
const veryLightBlueLine = '#AAF';
const darkBlue = '#66B';
const darkBlueLine = '#116';
const green = '#7D7';
const greenLine = '#393';
const darkGreen = '#3A3';
const darkGreenLine = '#060';
const seafoam = '#93E9BE';
const seafoamLine = '#53AC7E';
// Purples
const darkPurple = '#51087E';
const darkPurpleLine = '#8138AE';
const purple = '#880ED4';
const purpleLine = '#5800A4';
const purple2 = '#A020F0';
const purple2Line = '#7000C0';
const lightPurple = '#B24BF3';
const lightPurpleLine = '#520B83';
const veryLightPurple = '#D7A1F9';
const veryLightPurpleLine = '#A771C9';
const ultraLightPurple = '#EEDDFF';
const ultraLightPurpleLine = '#A771C9';
const darkBrown = '#964B00';
const darkBrownLine = '#660B00';
const brown = '#C87D32';
const brownLine = '#722810';
const lightBrown = '#DACDBA';
const lightBrownLine = '#A99A89';
const orange = '#FFA500';
const orangeLines = '#DD8000';
const darkOrange = '#DD8300';
const darkOrangeLines = '#883000';
const lightOrange = '#FFEA66';
const lightOrangeLine = '#FFB466';
const orangeBrown = '#EEBB00';
const orangeBrownLine = '#A99A89';
const yellow = '#FF3';
const yellowLine = '#AA0';
const lightYellow = '#FFFBCC';
const lightYellowLine = '#CCC89A';
const lightGreen = '#BCB';
const lightGreenLine = '#9A9';
const veryLightGreen = '#DFD';
const veryLightGreenLine = '#CDC';
export function getColors(domainType) {
// Signal peptides
if (domainType === 'S') {
// return ['#F90', '#5D5'];
// return ['#F90', '#090'];
// return ['#FF2', '#F99'];
return ['#FF2', '#F99'];
}
// Topological features
else if (domainType === 'Extracellular') {
return [veryLightBlue, veryLightBlueLine];
} else if (domainType === 'Cytoplasmic') {
return [lightYellow, lightYellowLine];
} else if (
domainType === 'Helical' ||
domainType.startsWith('Helical ---')
) {
return [lightBrown, lightBrownLine];
} else if (
domainType === 'Lumenal'
) {
return [lightOrange, lightOrangeLine];
} else if (
domainType === 'Lumenal, melanosome' // e.g. in TYR
) {
return [orangeBrown, orangeBrownLine];
} else if (
domainType === 'Mitochondrial matrix' // e.g. SDHC in ACMG
) {
return [veryLightGreen, veryLightGreenLine];
} else if (
domainType === 'Mitochondrial intermembrane'
) {
return [lightGreen, lightGreenLine];
} else if (domainType === 'Perinuclear space') {
// E.g. TMEM43
return [ultraLightPurple, ultraLightPurpleLine];
} else if (domainType === 'Nuclear') {
return [veryLightPurple, veryLightPurpleLine];
} else if (domainType === 'Beta stranded') {
return [blue, blueLine];
}
// Sites, domains, features, and other entries
else if (
domainType.includes('conserved site') || // https://www.google.com/search?q=pymol+conserved+site+color&tbm=isch
domainType.includes('conserved domain') ||
domainType === 'WGR domain' ||
domainType === 'R3H domain' ||
domainType.includes('QLQ') ||
domainType === 'Sema domain' ||
domainType === 'Proteasome component (PCI) domain' ||
domainType === 'Sterol-sensing domain' ||
domainType === 'Erythropoietin/thrombopoietin' ||
domainType === 'SPRY domain' ||
domainType === 'Anaphylatoxin/fibulin' ||
domainType === 'Tetratricopeptide repeat' ||
domainType === 'Doublecortin domain' ||
domainType.includes('Glycosyl transferase') ||
(
domainType.toLowerCase().includes('lethal') &&
domainType.toLowerCase().includes('c-terminal')
) ||
domainType.includes('PUB') ||
domainType.includes('Myogenic determination') ||
domainType === 'Globin' ||
domainType === 'GPS motif' ||
domainType.includes('D-like') ||
domainType.toLowerCase().includes('insertion domain') || // e.g. RPLP0
domainType === 'Macro domain' // e.g. MACROH2A1
) {
return [magenta, magentaLines];
} else if (
// Enzymatic sites
domainType.includes('active site') ||
domainType.includes('hydroxylation site') ||
domainType.includes('catalytic domain') ||
domainType.includes('Lipid transport') ||
domainType === 'BRCA1, serine-rich domain' ||
domainType === 'Tower domain' || // Important in BRCA2
domainType.endsWith('attachment site') ||
domainType.endsWith('amyloid-beta peptide') ||
domainType === 'Reverse transcriptase domain' ||
domainType ===
'Membrane attack complex component/perforin (MACPF) domain' ||
domainType === 'Alpha-2-macroglobulin' ||
domainType === 'Kinesin motor domain' ||
domainType === 'Adenomatous polyposis coli tumour suppressor protein' ||
domainType.includes('endostatin')
) {
return [red, redLine];
} else if (
// Enzymatic domains, C-terminal regions, and miscellaneous
domainType === 'Cyclin, C-terminal domain' ||
domainType.includes('OB C-terminal domain') ||
domainType === 'Cationic amino acid transporter, C-terminal' ||
domainType === 'High mobility group box domain' ||
domainType === 'HMG-box domain' ||
domainType.includes('CUB domain') ||
domainType === 'C-5 cytosine methyltransferase' ||
domainType.includes('(G-protein), alpha subunit') ||
domainType === 'SCAN domain' ||
domainType === 'Apolipoprotein A/E' ||
domainType.includes('Clusterin') || // a.k.a. apolipoprotein J, e.g. CLU
domainType.includes('SMAD domain') ||
domainType === 'PLAC' ||
domainType.endsWith('tripeptidyl peptidase II') ||
domainType === 'Prohormone convertase enzyme' ||
domainType.includes('rod domain') ||
domainType === 'Osteopontin' ||
domainType === 'SPRY-associated' ||
domainType === 'C1q domain' ||
domainType === 'OAR domain' ||
domainType.includes('FTO, C-terminal') ||
domainType.includes('ATPase, C-terminal') ||
domainType.includes('Hint domain') ||
domainType === 'Laminin IV' ||
domainType === 'NACHT-associated domain' ||
domainType.includes('FANCD2') ||
domainType.startsWith('Acyl-CoA') && domainType.endsWith('C-terminal') ||
domainType === 'Kinesin-like' ||
domainType === 'GUCT' ||
domainType.includes('(APC) repeat') || // e.g. as in APC gene
domainType.includes('IP3R') // e.g. RYR1
) {
return [faintRed, faintRedLine];
} else if (
domainType.includes('trypsin domain') ||
domainType.includes('scaffold dimerization') ||
domainType.includes('eIF-4 gamma, MA3') || // e.g. PDCD4
domainType === 'Troponin' || // e.g. TNNT1
domainType === 'SKI/SNO/DAC domain' || // SKIL gene
domainType.toLowerCase().includes('large ribosom') || // RPLP0
domainType.includes('KA1') || // e.g. MARK2
domainType === 'V(D)J recombination-activating protein 1' || // e.g. RAG1
domainType.toLowerCase().includes('opiod') || // e.g. PDYN
domainType === 'Corticotropin-releasing factor' || // e.g. CRH
domainType.includes('2Fe-2S ferredoxin') || // e.g. XDH
domainType.includes('acidic domain') // e.g. SYNCRIP
) {
return [redderFaintRed, redderFaintRedLine];
} else if (
domainType === 'EGF-like calcium-binding domain' ||
domainType.includes('PTX/LNS') ||
domainType === 'HSR domain' ||
domainType.includes('MutS, clamp') ||
domainType.includes('S5 domain 2-like') || // e.g. MLH1 in ACMG
domainType.endsWith('CC1/2') || // e.g. PRKDC
domainType.includes('MUN') || // e.g. UNC13C
domainType.includes('second molybdopterin') // e.g. XDH
) {
return [darkGreen, darkGreenLine];
} else if (
// Binding sites, and smaller binding regions
domainType.includes('binding site') ||
domainType === 'EF-hand domain' ||
domainType.includes('EF hand-like') ||
domainType === 'Zinc finger, nuclear hormone receptor-type' ||
domainType.includes('Serpin domain') ||
domainType === 'Peptidase C14, p20 domain' ||
domainType === 'PWWP domain' ||
domainType === 'Peptidoglycan binding-like' ||
domainType === 'MAD homology 1, Dwarfin-type' ||
domainType === 'F-actin binding' ||
(
domainType.includes('Glycoside hydrolase') &&
domainType.endsWith('domain')
) ||
domainType === 'p53 tumour suppressor family' ||
domainType === 'Menin' || // tumor suppressor, e.g. MEN1 in ACMG
domainType.includes('von Hippel') && domainType.includes('beta') || // VHLL
domainType === 'Pointed domain' ||
domainType.includes('DNA binding') ||
domainType === 'Helix-hairpin-helix domain' ||
domainType === 'Helix-hairpin-helix motif' ||
domainType === 'MIR motif' ||
domainType === 'Rad52 family' ||
domainType === 'Oxidoreductase FAD/NAD(P)-binding' ||
domainType.endsWith('NAD-binding') ||
domainType.endsWith('NAD binding') ||
domainType.includes('Bromo adjacent') ||
domainType === 'HARP domain' ||
domainType === 'FATC domain' ||
domainType.startsWith('XRN2-binding') ||
domainType === 'SRCR-like domain' ||
domainType.includes('SRCR') ||
domainType === 'Gamma-carboxyglutamic acid-rich (GLA) domain' ||
domainType === 'Pterin-binding domain' ||
domainType === 'Receptor, ligand binding region' ||
domainType.includes('DHEX domain') ||
domainType === 'SANT/Myb domain' ||
domainType.includes('Forkhead-associated') ||
domainType === 'Rap/Ran-GAP domain' ||
domainType.endsWith('C2 domain') ||
domainType.includes('tri-helix bundle domain') || // e.g. MYBPC3
domainType.includes('Cx50') || // e.g. GJA8
domainType.includes('tyrosine-rich') ||
domainType === 'Filaggrin' // e.g. FLG
) {
return [blue, blueLine];
} else if (
domainType.includes('dehydrogenase, molybdopterin binding') ||
domainType === 'Zinc finger CCHC HIVEP-type' ||
domainType === 'Cyclin, N-terminal' ||
domainType === 'MAD homology, MH1' ||
domainType === 'Sodium ion transport-associated' ||
domainType === 'Sodium ion transport-associated domain' ||
domainType.endsWith('head') ||
domainType.includes('Pleckstrin homology domain') ||
domainType === 'PH domain' ||
domainType.endsWith('pleckstrin homology-like domain') ||
domainType === 'DEP domain' ||
domainType === 'Post-SET domain' ||
domainType.includes('Glycoside hydrolase') ||
domainType === 'Pyridoxal phosphate-dependent decarboxylase' ||
domainType.includes('OB1') ||
domainType.includes('OB3') ||
domainType.includes('OB domain') ||
domainType === 'Fork head domain' ||
domainType === 'Histone deacetylase domain' ||
domainType.includes('MG1') ||
domainType === 'Homocysteine-binding domain' ||
domainType.startsWith('Acyl-CoA') && domainType.endsWith('N-terminal') ||
domainType === 'Clathrin light chain' ||
domainType === 'Hexokinase, N-terminal' // e.g. HK2
) {
return [lightBlue, lightBlueLine];
} else if (
// Larger binding regions and miscellaneous
domainType.includes('zinc-binding') ||
domainType.includes('DNA-binding') ||
domainType === 'RUNT domain' || // a DNA-binding / PPI domain, e.g. RUNX1
domainType === 'G protein-coupled receptor, rhodopsin-like' ||
domainType.includes('CXC domain') ||
domainType.includes('Homeobox domain') ||
domainType.includes('BRCT domain') ||
domainType.includes('EF-hand') ||
domainType === 'Laminin G domain' ||
domainType === 'Peptidase C14, caspase non-catalytic subunit p10' ||
domainType === 'ADD domain' ||
domainType === 'PDZ domain' ||
domainType === 'Krueppel-associated box' ||
domainType === 'Ets domain' ||
domainType === 'P domain' ||
domainType.includes('bHLH') ||
domainType === 'Ras-associating (RA) domain' ||
domainType === 'Ras-associating domain' ||
domainType ===
'Calcium/calmodulin-dependent protein kinase II, association-domain' ||
domainType === 'Bromodomain' ||
domainType === 'Bromodomain associated domain' ||
domainType === 'SLIDE domain' ||
domainType === 'Peptidase M24' ||
domainType === 'Pentraxin-related' ||
domainType.includes('Notch ligand') ||
domainType === 'Anti-proliferative protein' ||
domainType.includes('transpeptidase') ||
domainType === 'Tuberin-type domain' ||
domainType === 'Ras-like guanine nucleotide exchange factor, N-terminal' ||
domainType.includes('factor-binding protein') || // as in IGFBP3
domainType.includes('GPD') || // e.g. MUTYH in ACMG
domainType === 'ELM2 domain' // e.g. MTA2
) {
return [darkBlue, darkBlueLine];
} else if (
domainType === 'SH2 domain' ||
domainType.includes('SH2-like domain') ||
domainType.includes('Furin-like') ||
domainType.includes('heparin-binding') ||
domainType === 'SRCR domain' ||
domainType === 'EGF-like domain' ||
domainType === 'Basic leucine zipper domain, Maf-type' ||
domainType.startsWith('Leucine zipper') ||
domainType.includes('Interleukin') && domainType.includes('propeptide') ||
domainType === 'Sirtuin family' ||
domainType === 'Amino acid/polyamine transporter I' ||
domainType === 'Peptidase M10, metallopeptidase' ||
domainType === 'Metallothionein' ||
domainType === 'DDHD domain' ||
domainType === 'Zinc finger C2H2-type' ||
domainType === 'Zinc finger, PARP-type' ||
domainType.endsWith('tail domain') ||
domainType === 'SET domain' ||
domainType === 'Hamartin' || // e.g. TSC2 in ACMG; interacts with tuberin
domainType.includes('von Hippel') && domainType.includes('alpha') || // VHLL
domainType.includes('transactivation domain 2') ||
domainType === 'Phosphopantetheine binding ACP domain' ||
domainType === 'Multicopper oxidase, second cupredoxin domain' ||
domainType === 'Helicase, C-terminal' ||
domainType.includes('Carboxylesterase') || // e.g. ACHE
domainType.includes('presequence') || // e.g. ALAS2
domainType.endsWith('CC3') // e.g. PRKDC
) {
return [green, greenLine];
} else if (
domainType === 'Insulin-like' ||
domainType === 'Fibroblast growth factor family' ||
domainType === 'Nerve growth factor-related' ||
domainType === 'Transforming growth factor-beta, C-terminal' ||
domainType === 'Telomere-length maintenance and DNA damage repair' ||
domainType === 'PDGF/VEGF domain' ||
domainType.includes('SH3-RhoGEF') ||
domainType.includes('MG4') ||
domainType.includes('RING domain') ||
domainType.includes('RING-type') ||
domainType.startsWith('DEAD/DEAH') ||
domainType === 'Laminin alpha, domain I' ||
domainType.toLowerCase().includes('nuclear/hormone receptor') ||
domainType === 'P-type trefoil domain' || // e.g. GAA in ACMG
domainType.includes('KHDRBS')
) {
return [darkGreen, darkGreenLine];
} else if (
domainType === 'SH3 domain' ||
domainType === 'Variant SH3 domain' ||
domainType.endsWith('SH3 domain') ||
domainType.includes('copper-binding') ||
domainType === 'Sushi/SCR/CCP domain' ||
domainType.includes('Coagulation factor 5/8') ||
domainType === 'Basic-leucine zipper domain' ||
domainType === 'Basic region leucine zipper' ||
domainType === 'Sirtuin family, catalytic core domain' ||
domainType === 'Amine oxidase' ||
domainType.includes('peroxidase') ||
domainType.includes('lid domain') ||
domainType.includes('prodomain') ||
domainType === 'Pre-SET domain' ||
domainType.includes('transactivation domain') ||
domainType.includes(' activation domain') ||
domainType.includes('activating region') ||
domainType === 'Thioesterase' ||
domainType.toLowerCase().includes('thiored') || // e.g. TXNDC12
domainType.includes('esterase') ||
domainType.endsWith('Claudin superfamily') ||
domainType === 'Retinoblastoma-associated protein, A-box' ||
domainType.includes('Between PH and SH2') ||
domainType.includes('inter-SH2') ||
domainType === 'Chromogranin A/B/C' ||
domainType.toLowerCase().includes('helicase') ||
domainType.endsWith('pro-domain') ||
domainType === 'Brix domain' ||
domainType === 'Coagulation Factor Xa inhibitory site' ||
domainType === 'Trypsin Inhibitor-like, cysteine rich domain' ||
domainType === 'WIF domain' || // Wnt1 inhibitory factor, e.g. WIF1
domainType.toLowerCase().includes('cystatin') ||
domainType === 'EGF domain' ||
domainType === 'Axin beta-catenin binding' ||
domainType === 'Peptidase M2, peptidyl-dipeptidase A' ||
domainType.endsWith('phosphatase domain') ||
domainType === 'PIGA, GPI anchor biosynthesis' ||
domainType.startsWith('Acyl-CoA') && domainType.endsWith('middle domain') ||
domainType.includes('(COR)') ||
domainType === 'K Homology domain, type 2' ||
domainType.includes('Phox') ||
domainType.includes('PB1') ||
domainType.includes('multifunctional domain') ||
domainType.includes('MutS, core') ||
domainType === 'RAP domain' || // RNA-binding, e.g. FASTK
domainType.endsWith('CC5') || // e.g. PRKDC
domainType.includes('first molybdopterin') // e.g. XDH
) {
return [seafoam, seafoamLine];
} else if (
// Immunoglobulin domains are colored in the pink-purple spectrum
domainType === 'Immunoglobulin-like domain' ||
domainType.toLowerCase().endsWith('immunoglobulin-like domain') ||
domainType.endsWith('Ig domain') ||
domainType.endsWith('Ig-like domain') ||
domainType === 'Major facilitator superfamily domain' ||
domainType.includes('interface') ||
domainType === 'Class I myosin tail homology domain' ||
domainType === 'Myosin tail' ||
domainType === 'Acyl transferase' ||
domainType.endsWith('transferase') ||
domainType.startsWith('Acyl-CoA') ||
domainType === 'JAK, FERM F2 lobe domain' ||
domainType === 'Sodium/solute symporter' ||
domainType.includes('foci domain') ||
domainType.includes('Receptor L-domain') ||
domainType === 'Wnt' ||
domainType === 'R-spondin, Fu-CRD domain' ||
domainType.endsWith('merisation domain') || // e.g. di- / tetramerisation
domainType.endsWith('merization domain') ||
domainType.endsWith('merisation motif') || // e.g. di- / tetramerisation
domainType.endsWith('merization motif') ||
domainType.endsWith('BTB/POZ domain') || // homodimerization domain
domainType.includes('CBS domain') || // these domains homo-dimerize
domainType === 'DZF domain' || // domain associated with zinc fingers; dimerisation domain
domainType === 'GS domain' || // in kinase superfamily
domainType.includes('kinase domain') ||
domainType.includes('FAT') ||
domainType.startsWith('von Willebrand factor, type A') ||
domainType.includes('VWA') ||
domainType === 'Reeler domain' ||
domainType === 'BMP/retinoic acid-inducible neural-specific protein' ||
domainType === 'Low-density lipoprotein (LDL) receptor class A repeat' ||
domainType === 'TILa domain' ||
domainType.includes('chromosome condensation') ||
domainType === 'Immunoglobulin I-set' || // e.g. MYBPC3
domainType === 'Kinesin-associated' ||
domainType === 'SMCs flexible hinge' || // e.g. SMC1A
domainType.includes('Cys-His rich domain') // e.g. NSD2
) {
return [pink, pinkLine];
} else if (
domainType === 'Immunoglobulin' ||
domainType === 'Immunoglobulin domain' ||
domainType === 'CD20-like family' ||
domainType === 'Calponin homology domain' ||
domainType.endsWith('Calponin-homology domain') ||
domainType.includes('ATPase') ||
domainType.includes('ATP coupling domain') ||
domainType.includes('globular domain') ||
domainType === 'Mitochondrial substrate/solute carrier' ||
domainType === 'Major facilitator, sugar transporter-like' ||
domainType === 'Major facilitator, sugar transporter-like' ||
domainType === 'Sodium:neurotransmitter symporter' ||
domainType.toLowerCase().includes('methyltransferase') ||
domainType === 'Rhodanese-like domain' ||
domainType.startsWith('Thyroglobulin') ||
domainType === 'Retinoblastoma-associated protein, B-box' ||
domainType === 'C-type lectin-like' ||
domainType === 'Galectin, carbohydrate recognition domain' ||
domainType === 'VWFC domain' || // von Willebrand
domainType.includes('CFC domain') ||
domainType === 'POLO box domain' ||
domainType.endsWith('domain 1') ||
domainType.endsWith('domain II') || // e.g. EEF2
domainType === 'Fibronectin, type I' ||
domainType === 'Cadherin-like' ||
domainType === 'G-protein gamma-like domain' ||
domainType === 'GoLoco motif' ||
domainType === 'MyTH4 domain' ||
domainType.endsWith('isomerase') ||
domainType === ('BTB/Kelch-associated') || // associated with BTB/POZ
domainType === 'Stathmin family'
) {
return [veryLightPurple, veryLightPurpleLine];
} else if (
domainType === 'Immunoglobulin C1-set' ||
domainType.includes('GTPase') ||
domainType === 'RGS domain' ||
domainType === 'Major facilitator superfamily' ||
domainType === 'Fibronectin type II domain' ||
domainType.includes('ectodomain') ||
domainType.endsWith('receptor domain') ||
domainType.endsWith('receptor domain 4') ||
domainType === 'MAM domain' ||
domainType === 'IPT domain' ||
domainType.endsWith('extracellular') ||
domainType === 'Link domain' ||
domainType.includes('connector domain') ||
domainType === 'WW domain' ||
domainType === 'WHIM1 domain' ||
domainType === 'TNFR/NGFR cysteine-rich region' ||
domainType === 'Frizzled domain' ||
domainType === 'Netrin module, non-TIMP type' ||
domainType === 'CFTR regulator domain' ||
domainType.endsWith('domain 2') ||
domainType === 'GNAT domain' ||
domainType === 'NIDO domain' ||
domainType === 'Myosin head, motor domain' ||
domainType === 'von Willebrand domain, type D domain' ||
domainType === 'Kinesin-like KIF1-type' ||
domainType.includes('Paxillin') || // e.g. PXN, an ACMG gene
domainType === 'Clathrin, heavy chain/VPS, 7-fold repeat' ||
domainType === 'Collagen IV, non-collagenous'
) {
return [lightPurple, lightPurpleLine];
} else if (
domainType === 'Fibronectin type III' ||
domainType === 'Tissue factor' ||
domainType === 'Immunoglobulin C2-set' ||
domainType.includes('immunoglobulin C2-set') ||
domainType.includes('protein interaction') ||
domainType === 'SWIRM domain' ||
domainType.includes('(DSL) protein') ||
domainType === 'Dishevelled protein domain' ||
domainType.endsWith('domain 3') ||
domainType === 'DnaJ domain' ||
domainType.toLowerCase().includes('nuclear receptor') ||
domainType === 'Gonadal family'
) {
return [purple, purpleLine];
} else if (
domainType === 'Immunoglobulin V-set domain' ||
domainType.includes('V-set domain') ||
domainType.includes('V-like') ||
domainType === 'Frizzled/Smoothened, 7TM' ||
domainType.endsWith('domain 4') ||
domainType === 'Integrin alpha-2' ||
domainType === 'Calcium-activated potassium channel BK, alpha subunit' ||
domainType.includes('Dbl homology (DH) domain') ||
domainType.includes('Glycine rich') ||
domainType.toLowerCase().includes('exonuclease') ||
domainType === 'WHIM2 domain' ||
domainType.includes('Coactivator CBP') || // e.g. EP300
domainType.includes('cryptic polo') // e.g. PLK4
) {
return [darkPurple, darkPurpleLine];
}
// Not great in MYBPC3, an AGMC gene
// else if (
// domainType === 'Immunoglobulin I-set'
// ) {
// return [purple2, purple2Line];
// }
else if (
domainType === 'Desmoplakin, spectrin-like domain' ||
domainType === 'Spectrin repeat' ||
domainType.endsWith('TED domain') ||
domainType === 'Polyadenylate-binding protein/Hyperplastic disc protein' ||
domainType.includes(' cap domain') ||
domainType.toLowerCase().includes('agenet') ||
domainType.includes('TATA') ||
domainType.includes('Citron') ||
domainType === 'RIH domain' ||
domainType.toLowerCase().includes('sclerostin') || // e.g. SOSTDC1
domainType === 'ZU5 domain' || // e.g. TJP1
domainType === 'Piezo domain' || // e.g. PIEZO1
domainType === 'Histone H2A/H2B/H3' // e.g. H2AZ1
) {
return [yellow, yellowLine];
}
else if (
// Repeats, iron, some transmembrane
domainType === 'Armadillo' ||
domainType.includes('Apple domain') ||
domainType === 'Protocadherin' || // Cytoplasmic
domainType === 'DIX domain' ||
domainType === 'Ferritin-like diiron domain' ||
domainType === '4Fe-4S dicluster domain' ||
domainType === 'Transferrin-like domain' || // iron-related, e.g. MELTF
domainType === 'PAS domain' ||
domainType === 'PAS fold' ||
domainType === 'Polyketide synthase, dehydratase domain' ||
domainType === 'Flavodoxin/nitric oxide synthase' ||
domainType === 'Flavodoxin-like fold' ||
domainType === 'G-patch domain' ||
domainType === 'Chromo domain' ||
domainType.toLowerCase().includes('tudor') ||
domainType === 'Cytochrome P450' ||
domainType === 'Potassium channel domain' ||
domainType === 'G2 nidogen/fibulin G2F' ||
domainType.includes('bait region') ||
domainType === 'WWE domain' ||
domainType.endsWith('deiodinase') ||
domainType === 'Cobalamin (vitamin B12)-binding domain' ||
domainType === 'Laminin domain II' ||
domainType === 'Troponin I residues 1-32' || // e.g. TNNI3 in ACMG
domainType === 'KI67R' || // KI67 / Chmadrin repeat
domainType.includes('FAD-binding') ||
domainType.includes('Glucagon') // e.g. GCG, which encodes GLP-1
) {
return [orange, orangeLines];
} else if (
domainType.includes('Kringle') ||
domainType.includes('Peptidase M12A') ||
domainType === 'TGF-beta, propeptide' ||
domainType.includes('autopeptidase') ||
domainType.includes('GAIN') ||
domainType === 'PIK-related kinase' ||
domainType.includes('(PIK) domain') ||
domainType === 'LDLR class B repeat' ||
domainType === 'Actin family' ||
domainType === 'Ferritin/DPS protein domain' ||
domainType === 'PAS fold-3' ||
domainType === 'Polyketide synthase, ketoreductase domain' ||
domainType.startsWith('Heat shock protein') && domainType.endsWith('family') ||
domainType === 'BAG domain' || // e.g. BAG3 in AGMC, a chaperone
domainType === 'MCM domain' ||
domainType.endsWith('reductase-like') ||
domainType === 'Lipase' ||
domainType === 'Phospholipase A2 domain' ||
domainType === 'Notch domain' ||
domainType.includes('LCCL domain') ||
domainType.includes('SANT-like') ||
domainType ===
'VWF/SSPO/Zonadhesin-like, cysteine-rich domain' || // E.g. VWF
domainType === 'Kappa casein' ||
domainType === 'Casein, alpha/beta' ||
domainType === 'Natriuretic peptide' ||
domainType === 'EMI domain' ||
domainType === 'Neurohypophysial hormone' ||
domainType === 'Synuclein' ||
domainType.includes('Hydroxymethylglutaryl-CoA reductase') ||
domainType.includes('Perilipin') ||
domainType.includes('lipase') ||
domainType.includes('CRAL') || // e.g. NF1
domainType.includes('SAND') ||
domainType.toLowerCase().includes('hsp') ||
domainType.toLowerCase().includes('bombesin') // e.g. GRP
) {
return [lightBrown, lightBrownLine];
} else if (
domainType === 'Notch, NOD domain' ||
domainType === 'Cadherin, Y-type LIR-motif' ||
domainType === 'Protein patched/dispatched' ||
domainType.includes('membrane-proximal') ||
domainType === 'LicD family' ||
domainType.includes('MoaB/Mog')
) {
return [brown, brownLine];
} else if (
// Transmembrane, etc.
domainType.includes('transmembrane domain') ||
domainType.includes('trans-membrane domain') ||
domainType.includes('Transmembrane protein') ||
domainType.includes('7TM') || // e.g. TMEM63A
domainType === 'Major intrinsic protein' || // e.g. AQP1
domainType.includes('Triadin') ||
domainType.includes('Collectrin') ||
domainType.includes('membrane glycoprotein') ||
domainType === 'SEA domain' ||
domainType === 'CD36 family' ||
domainType.includes('CD34') ||
domainType === 'Hypoxia-inducible factor, alpha subunit' ||
domainType === 'Hypoxia-inducible factor, alpha subunit-like' ||
domainType === 'PKD domain' ||
domainType.includes('regulatory domain') ||
domainType.endsWith('E2 domain') ||
domainType === 'PLAT/LH2 domain' ||
domainType === 'Notch, NODP domain' ||
domainType === 'Syndecan/Neurexin domain' ||
domainType === 'Zona pellucida domain' ||
domainType.includes('Ion transport domain') ||
domainType.endsWith('Membrane transport protein MMPL domain') ||
domainType.includes('Caveolin') ||
domainType === 'Band 7 domain' ||
domainType.includes('Shisa') ||
domainType === 'ABC-2 family transporter protein' ||
domainType === 'Anoctamin' ||
domainType === 'Sodium-dependent phosphate transport protein' || // SLC34A2
domainType.includes('MHC II-interacting') // e.g. CD74
) {
return [darkBrown, darkBrownLine];
} else if (
// Death, ubiquitination, apoptosis, etc.
domainType === 'DAPIN domain' ||
domainType === 'Death effector domain' ||
domainType === 'Death domain' ||
domainType.includes('death protein') ||
domainType.toLowerCase().includes('lethal') ||
domainType.includes('UBA domain') ||
domainType.includes('HECT domain') ||
domainType.toLowerCase().includes('ubiquitin') ||
domainType.includes('necrosis') ||
domainType.toLowerCase().includes('death') ||
domainType.includes('Bcl-2') ||
domainType.includes('CIDE-N') ||
domainType === 'Disintegrin domain' ||
domainType.includes('TRAF') ||
domainType.includes('TIR') ||
domainType.toLowerCase().includes('caspase') ||
domainType === 'Pellino family'
) {
return [darkGrey, darkGreyLine];
} else if (
domainType.includes('unknown function') ||
domainType.toLowerCase().includes('unstructured') ||
domainType.startsWith('Uncharacterised')
) {
return [grey, greyLine];
} else if (
domainType.toLowerCase().includes('leucine rich repeat') ||
domainType.includes('HIN') ||
domainType.includes('calcium') ||
domainType.toLowerCase().includes('calreticulin') ||
domainType.includes('cytokine receptor') ||
domainType.includes('pore forming') ||
domainType.includes('RHIM') ||
domainType.includes('SWIB') ||
domainType === 'Ryanodine receptor Ryr' ||
// Associated with repeats
domainType.includes('Armadillo') || // e.g. APC
domainType === 'UME domain' || // overlaps Armadillo-type fold, e.g. ATR
domainType.includes('WD40 domain') ||
domainType === 'WSTF/Acf1/Cbp146' || // ATP-utilising chromatin assembly and remodeling factor
domainType === 'BCL7' || // e.g. BCL7A
domainType.endsWith('repeat ring region') || // e.g. TRRAP
domainType.includes('PANDER') || // e.g. FAM3C
// GPCRs
domainType === 'GPCR, rhodopsin-like, 7TM' ||
domainType === 'GPCR, family 2, secretin-like' ||
domainType === 'GPCR, family 3, nine cysteines domain' ||
domainType === 'G-protein coupled receptor' ||
domainType.toLowerCase().includes('orexin') || // e.g. HCRTR2
domainType === '[2Fe-2S]-binding'
) {
return [darkOrange, darkOrangeLines];
} else if (
domainType.includes('repeat') ||
domainType === 'Vitellinogen, open beta-sheet' ||
domainType.includes('Interleukin') && domainType.includes('family') ||
/Interleukin-\d+$/.test(domainType) ||
domainType === 'Chemokine interleukin-8-like domain' ||
domainType.includes('beta-ribbon') ||
domainType.includes('cytoplasmic domain') ||
domainType.toLowerCase().includes('interleukin') ||
domainType === 'Citrate transporter-like domain' ||
domainType.toLowerCase().includes('calsequestrin')
) {
return [orange, orangeLines];
} else if (
domainType.includes('inhibit') ||
domainType.includes('central') ||
domainType.endsWith('tail') ||
domainType.endsWith('helical domain') ||
domainType.endsWith('helical domain HD2') ||
domainType.endsWith('coiled-coil domain') ||
domainType.endsWith('coiled-coil region') ||
domainType.includes('zinc ribbon fold') ||
domainType.includes('zinc-ribbon') ||
domainType.toLowerCase().includes('anhydrase') || // e.g. CA6
domainType === 'Macroglobulin domain' ||
domainType.includes('KH0') ||
domainType.includes('EGF') ||
domainType.toLowerCase().includes('olfact') ||
domainType.toLowerCase().includes('mucin') // e.g. CEL
) {
return [seafoam, seafoamLine];
} else if (
domainType.includes('Peptidase') ||
domainType.includes('Ras-binding') ||
domainType.includes('CRIB domain')
) {
return [blue, blueLine];
} else if (
domainType.toLowerCase().includes('zinc finger') ||
domainType.toLowerCase().includes('zinc-finger') ||
domainType.includes('RING finger') ||
domainType.toLowerCase().includes('transcription factor') ||
domainType === 'Paired domain' || // found in eukaryotic transcription regulatory proteins involved in embryogenesis
domainType === 'JmjC domain' ||
domainType === 'BRK domain' ||
domainType.includes('MG3') ||
domainType.toLowerCase().includes('polycomb') ||
domainType.toLowerCase().includes('metallopeptidase') ||
domainType.toLowerCase().includes('metallo-peptidase') ||
domainType.toLowerCase().includes('metalloenzyme') ||
domainType === 'K Homology domain, type 1' ||
domainType.includes('winged helix') ||
domainType.toLowerCase().includes('dehydrogenase') ||
domainType.includes('BAR') ||
domainType.includes('metal') ||
domainType.includes('redoxin')
) {
return [green, greenLine];
} else if (
domainType.startsWith('Tyrosine-protein kinase receptor') ||
domainType === 'PTB/PI domain' ||
domainType.endsWith('receptor') ||
domainType.includes('cysteine rich') ||
domainType.includes('cysteine-rich') ||
domainType === 'AWS domain' || // cysteine-rich, e.g. NSD2
domainType.toLowerCase().includes('somatomedin b') ||
domainType.includes('MHC class II') && !domainType.includes('C-terminal')
) {
return [lightPurple, lightPurpleLine];
} else if (
domainType.toLowerCase().includes('golgi') ||
domainType === 'GOLD domain' ||
domainType.includes('deaminase') ||
domainType.includes('C-terminal core') ||
domainType.includes('nucleoside triphosphatase') ||
domainType.includes('globin') ||
domainType.includes('IspD/TarI') ||
domainType === 'Telethonin' ||
domainType.includes('Sarcoglycan') ||
domainType.includes('toxin') ||
domainType.includes('ShKT') ||
domainType.includes('SAM') ||
domainType.includes('Sterile alpha motif') ||
domainType.includes('Unconventional myosin-X') ||
domainType === 'CARD domain' ||
domainType.includes('endonuclease') ||
domainType.toLowerCase().includes('splicing factor') ||
domainType.toLowerCase().includes('interferon') ||
domainType === 'Tropomyosin' || // e.g. TPM1
domainType.includes('R1 domain') // e.g. MTA2
) {
return [magenta, magentaLines];
} else if (
domainType.includes('TM') || // transmembrane, as in e.g. RYR1
domainType.toLowerCase().includes('transmembrane') ||
domainType.toLowerCase().includes('trans-membrane')
) {
return [darkBrown, darkBrownLine];
} else if (
domainType.includes('binding domain') ||
domainType.includes('binding protein')
) {
return [darkBlue, darkBlueLine];
} else if (
domainType.includes('Ribosomal protein') ||
domainType.toLowerCase().includes('ribosomal subunit') ||
domainType.toLowerCase().includes('ribosom') ||
domainType.toLowerCase().includes('ribonuclease')
) {
return [darkGreen, darkGreenLine];
} else if (
domainType.includes('lectin') ||
domainType.includes('recognition') ||
domainType.toLowerCase().includes('solute carrier') ||
domainType.includes('isomerase') ||
domainType === 'Clathrin-H-link'
) {
return [veryLightPurple, veryLightPurpleLine];
} else if (
domainType.startsWith('von Willebrand factor') ||
domainType.endsWith('receptor-binding') ||
domainType.toLowerCase().includes('link') ||
domainType.includes('basic domain') ||
domainType.includes('interacting') ||
domainType.includes('domain IV') || // e.g. EEF2
domainType.toLowerCase().includes('immunoglobulin domain')
) {
return [purple, purpleLine];
} else if (
domainType.includes('transferase') ||
domainType.includes('merisation')
) {
return [pink, pinkLine];
} else if (
domainType.includes('oxygenase')
) {
return [red, redLine];
} else if (
domainType.includes('phosphatase') ||
domainType.includes('RNA polymerase') ||
domainType.includes('catenin') // e.g. VCL
) {
return [seafoam, seafoamLine];
} else if (
domainType.includes('bind') ||
domainType.includes('EF')
) {
return [blue, blueLine];
} else if (
// C-terminal regions are typically colored red in e.g. PyMol rainbow
domainType.includes('C-termin') ||
domainType.includes('C termin') ||
domainType.includes('kinase')
) {
return [faintRed, faintRedLine];
} else if (
// N-terminal regions are typically colored blue in e.g. PyMol rainbow
domainType.includes('N-termin') ||
domainType.includes('N-teminal') || // Typo in "CTNNB1 binding, N-teminal"
domainType.includes('N termin') ||
domainType.toLowerCase().includes('decarboxylase') ||
domainType.toLowerCase().includes('hydrolase') ||
domainType.includes('PH domain') ||
domainType.includes('cytosolic') ||
domainType.toLowerCase().includes('homeobox')
) {
return [lightBlue, lightBlueLine];
}
return [lightGrey, lightGreyLine];
}