UNPKG

@rcsb/rcsb-saguaro-app

Version:
791 lines (790 loc) 33.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchFacets = exports.PHENOTYPE_FACET = exports.INTERPRO_FACET = exports.DISEASE_FACET = exports.GO_COMPONENT_FACET = exports.GO_PROCESS_FACET = exports.GO_FUNCTION_FACET = exports.ENZYME_CLASS_FACET = exports.CHEM_COMP_FACET = exports.ENTITY_NAME_FACET = exports.PFAM_FACET = exports.TAXONOMY_FACET = exports.ORGANISM_FACET = exports.LIGAND_OF_INTEREST_FACET = exports.LIGAND_FACET = exports.ECOD_FACET = exports.CATH_FACET = exports.SCOP_FACET = exports.RELEASE_DATE_FACET = exports.CHIMERIC_FACET = exports.TAXONOMY_COUNT_FACET = exports.METHODOLOGY_FACET = exports.RESOLUTION_FACET = exports.EXPERIMENTAL_METHOD_FACET = void 0; const SearchMetadata_1 = require("@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchMetadata"); const SearchEnums_1 = require("@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchEnums"); const ChartConfigInterface_1 = require("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface"); const SearchQueryTools_1 = require("@rcsb/rcsb-search-tools/lib/SearchQueryTools/SearchQueryTools"); exports.EXPERIMENTAL_METHOD_FACET = { id: "method", title: "Experimental Method", attributeName: "EXPERIMENTAL_METHOD_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.Exptl.Method.path, chartType: ChartConfigInterface_1.ChartType.barplot, contentType: "string", chartConfig: { mostPopulatedGroups: 3 }, facet: { name: "EXPERIMENTAL_METHOD_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.Exptl.Method.path, min_interval_population: 1 } }; exports.RESOLUTION_FACET = { id: "resolution", title: "Resolution", attributeName: "RESOLUTION_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.ResolutionCombined.path, contentType: "number", chartType: ChartConfigInterface_1.ChartType.histogram, chartConfig: { tickFormat: { domAxis: (t) => { if (parseInt(t.toString()) == 5) return `> ${t}`; if (parseInt(t.toString()) > 5) return ''; return t.toString(); } }, chartDisplayConfig: { constHeight: 225 }, histogramBinIncrement: 0.5, domainMinValue: 0, domainMaxValue: 6, axisLabel: "Angstroms", tooltipText: (d) => { if (d.x > 5) return "> 5"; return `Resolution ${d.x - 0.25} - ${d.x + 0.25}`; } }, facetConfig: { mergeDomainMaxValue: 5 }, facet: { name: "RESOLUTION_FACET", aggregation_type: SearchEnums_1.AggregationType.Histogram, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.ResolutionCombined.path, interval: 0.5, min_interval_population: 1, } }; exports.METHODOLOGY_FACET = { id: "computed", title: "Determination Methodology", attributeName: "METHODOLOGY_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.StructureDeterminationMethodology.path, chartType: ChartConfigInterface_1.ChartType.barplot, contentType: "string", chartConfig: { mostPopulatedGroups: 3 }, facet: { name: "METHODOLOGY_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntryInfo.StructureDeterminationMethodology.path, min_interval_population: 1 } }; exports.TAXONOMY_COUNT_FACET = { id: "taxonomy_count", title: "Number of Source Taxonomies", attributeName: "TAXONOMY_COUNT_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourceTaxonomyCount.path, chartType: ChartConfigInterface_1.ChartType.barplot, contentType: "string", facetConfig: { facetTransform: (bucket) => { const out = []; const wt = bucket.find(b => parseInt(b.label.toString()) == 1); if (wt) out.push({ label: "Single", labelPath: ["Single"], population: wt.population }); const synthetic = bucket.find(b => parseInt(b.label.toString()) == 0); if (synthetic) out.push({ label: "None", labelPath: ["None"], population: synthetic.population }); const chimeric = bucket.filter(b => parseInt(b.label.toString()) > 1); if ((chimeric === null || chimeric === void 0 ? void 0 : chimeric.length) > 0) out.push({ label: "Multiple", labelPath: ["Multiple"], population: chimeric.reduce((c, p) => c + p.population, 0) }); return out; }, bucketClickSearchQuery: (datum, data, e) => { if (datum.x == "Single") return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.TAXONOMY_COUNT_FACET.attribute, value: 1, operator: SearchEnums_1.Operator.Equals, service: SearchEnums_1.Service.Text }); else if (datum.x == "None") return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.TAXONOMY_COUNT_FACET.attribute, value: 0, operator: SearchEnums_1.Operator.Equals, service: SearchEnums_1.Service.Text }); else return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.TAXONOMY_COUNT_FACET.attribute, value: 1, operator: SearchEnums_1.Operator.Greater, service: SearchEnums_1.Service.Text }); } }, facet: { name: "TAXONOMY_COUNT_FACET", aggregation_type: SearchEnums_1.AggregationType.Histogram, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourceTaxonomyCount.path, min_interval_population: 1, interval: 1 } }; exports.CHIMERIC_FACET = { id: "chimeric", title: "Biological Source", attributeName: "CHIMERIC_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path, chartType: ChartConfigInterface_1.ChartType.barplot, contentType: "string", facetConfig: { facetTransform: (bucket) => { const out = []; const wt = bucket.find(b => b.label == 1); if (wt) out.push({ label: "Non-chimeric", labelPath: ["Non-chimeric"], population: wt.population }); const synthetic = bucket.find(b => b.label == 0); if (synthetic) out.push({ label: "Synthetic", labelPath: ["Synthetic"], population: synthetic.population }); const chimeric = bucket.filter(b => parseInt(b.label.toString()) > 1); if ((chimeric === null || chimeric === void 0 ? void 0 : chimeric.length) > 0) out.push({ label: "Chimeric", labelPath: ["Chimeric"], population: chimeric.reduce((c, p) => c + p.population, 0) }); return out; }, bucketClickSearchQuery: (datum, data, e) => { if (datum.x == "Non-chimeric") return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.CHIMERIC_FACET.attribute, value: 1, operator: SearchEnums_1.Operator.Equals, service: SearchEnums_1.Service.Text }); else if (datum.x == "Synthetic") return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.CHIMERIC_FACET.attribute, value: 0, operator: SearchEnums_1.Operator.Equals, service: SearchEnums_1.Service.Text }); else return (0, SearchQueryTools_1.buildAttributeQuery)({ attribute: exports.CHIMERIC_FACET.attribute, value: 1, operator: SearchEnums_1.Operator.Greater, service: SearchEnums_1.Service.Text }); } }, facet: { name: "CHIMERIC_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path, min_interval_population: 1 } }; exports.RELEASE_DATE_FACET = { id: "release_date", title: undefined, attributeName: "RELEASE_DATE_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbAccessionInfo.InitialReleaseDate.path, contentType: "date", chartType: ChartConfigInterface_1.ChartType.histogram, chartConfig: { tickIncrement: { origin: 1980, increment: 10 }, tickFormat: { domAxis: (t) => { return t.toString().replace(",", ""); } }, histogramBinIncrement: 1, domainMinValue: 1970, domainMaxValue: new Date().getFullYear() + 2, axisLabel: "Year", chartDisplayConfig: { constHeight: 225 }, tooltipText: (d) => { return `Release ${d.x - 0.5} - ${d.x + 0.5}`; } }, facet: { name: "RELEASE_DATE_FACET", aggregation_type: SearchEnums_1.AggregationType.DateHistogram, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbAccessionInfo.InitialReleaseDate.path, interval: "year", min_interval_population: 1 } }; exports.SCOP_FACET = { id: "scop_class", title: "SCOP/SCOPe Domain", attributeName: "SCOP_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path, value: 'SCOP' } }, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals, value: 5, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path } }, facets: [{ name: "SCOP_FACET", min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, aggregation_type: SearchEnums_1.AggregationType.Terms }] }] } }; exports.CATH_FACET = { id: "cath_class", title: "CATH Domain", attributeName: "CATH_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path, value: 'CATH' } }, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals, value: 4, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path } }, facets: [{ name: "CATH_FACET", min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, aggregation_type: SearchEnums_1.AggregationType.Terms }] }] } }; exports.ECOD_FACET = { id: "ecod_class", title: "ECOD Domain", attributeName: "ECOD_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.Type.path, value: 'ECOD' } }, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.operator.Equals, value: 4, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Depth.path } }, facets: [{ name: "ECOD_FACET", min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerInstanceAnnotation.AnnotationLineage.Name.path, aggregation_type: SearchEnums_1.AggregationType.Terms }] }] } }; exports.LIGAND_FACET = { id: "ligands", title: "Small Molecules", attributeName: "LIGAND_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 20 }, facet: { name: "LIGAND_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path, min_interval_population: 1 } }; exports.LIGAND_OF_INTEREST_FACET = { id: "ligands", title: "Ligands of Interest", attributeName: "LIGAND_OF_INTEREST_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityInstanceContainerIdentifiers.CompId.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 20 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.Type.path, operator: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.Type.operator.ExactMatch, value: "SUBJECT_OF_INVESTIGATION" } }, facets: [{ name: "LIGAND_OF_INTEREST_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbNonpolymerEntityAnnotation.CompId.path, min_interval_population: 1 }] } }; exports.ORGANISM_FACET = { id: "organism", title: "Organism", attributeName: "ORGANISM_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiScientificName.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 9 }, facet: { name: "ORGANISM_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiScientificName.path, min_interval_population: 1 } }; exports.TAXONOMY_FACET = { id: "taxonomy", title: "Taxonomy", attributeName: "TAXONOMY_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiParentScientificName.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 5 }, facet: { name: "TAXONOMY_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbEntitySourceOrganism.NcbiParentScientificName.path, min_interval_population: 1 } }; exports.PFAM_FACET = { id: "Pfam", title: "PFAM Domain", attributeName: "PFAM_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path, value: 'Pfam' } }, facets: [{ name: "PFAM_FACET", min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, aggregation_type: SearchEnums_1.AggregationType.Terms }] } }; exports.ENTITY_NAME_FACET = { id: "entiy_names", title: undefined, attributeName: "ENTITY_NAME_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbPolymerNameCombined.Names.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 5 }, facet: { name: "ENTITY_NAME_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbPolymerNameCombined.Names.path, min_interval_population: 1 } }; exports.CHEM_COMP_FACET = { id: "chemp_comp", title: "Chemical Component", attributeName: "CHEM_COMP_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.ChemComp.Type.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 5 }, facet: { name: "CHEM_COMP_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.ChemComp.Type.path, min_interval_population: 1 } }; exports.ENZYME_CLASS_FACET = { id: "enzyme_class", title: "Enzyme Classification", attributeName: "ENZYME_CLASS_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Depth.operator.GreaterOrEqual, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Depth.path, value: 3 } }, facets: [{ name: "ENZYME_CLASS_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbEcLineage.Name.path, min_interval_population: 1 }] } }; exports.GO_FUNCTION_FACET = { id: "go_function_class", title: "GO Molecular Function", attributeName: `GO_FUNCTION_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facetConfig: { facetTransform: goFacetTransform }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path, value: "GO" } }, facets: [{ name: "GO_FUNCTION_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, max_num_intervals: 1000, min_interval_population: 1, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path, value: "molecular_function" } }, facets: [{ name: `GO_FUNCTION_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, aggregation_type: SearchEnums_1.AggregationType.Terms, min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path }] }] }] } }; exports.GO_PROCESS_FACET = { id: "go_process_class", title: "GO Biological Process", attributeName: `GO_PROCESS_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facetConfig: { facetTransform: goFacetTransform }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path, value: "GO" } }, facets: [{ name: "GO_PROCESS_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, max_num_intervals: 1000, min_interval_population: 1, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path, value: "biological_process" } }, facets: [{ name: `GO_PROCESS_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, aggregation_type: SearchEnums_1.AggregationType.Terms, min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path }] }] }] } }; exports.GO_COMPONENT_FACET = { id: "go_component_class", title: "GO Cellular Component", attributeName: `GO_COMPONENT_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facetConfig: { facetTransform: goFacetTransform }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path, value: "GO" } }, facets: [{ name: "GO_COMPONENT_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, max_num_intervals: 1000, min_interval_population: 1, facets: [{ filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path, value: "cellular_component" } }, facets: [{ name: `GO_COMPONENT_FACET/${SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path}`, aggregation_type: SearchEnums_1.AggregationType.Terms, min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.AnnotationLineage.Name.path }] }] }] } }; exports.DISEASE_FACET = { id: "disease", title: "Disease Association", attributeName: "DISEASE_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.path, value: "disease" } }, facets: [{ name: "DISEASE_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path }] } }; exports.INTERPRO_FACET = { id: "InterPro", title: "InterPro Domain", attributeName: "INTERPRO_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Type.path, value: 'InterPro' } }, facets: [{ name: "INTERPRO_FACET", min_interval_population: 1, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntityAnnotation.Name.path, aggregation_type: SearchEnums_1.AggregationType.Terms }] } }; exports.PHENOTYPE_FACET = { id: "phenotype", title: "Phenotype Association", attributeName: "PHENOTYPE_FACET", attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path, contentType: "string", chartType: ChartConfigInterface_1.ChartType.barplot, chartConfig: { mostPopulatedGroups: 10 }, facet: { filter: { type: SearchEnums_1.Type.Terminal, service: SearchEnums_1.Service.Text, parameters: { operator: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.operator.ExactMatch, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Type.path, value: "phenotype" } }, facets: [{ name: "PHENOTYPE_FACET", aggregation_type: SearchEnums_1.AggregationType.Terms, attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbUniprotAnnotation.Name.path }] } }; exports.SearchFacets = { EXPERIMENTAL_METHOD_FACET: exports.EXPERIMENTAL_METHOD_FACET, RESOLUTION_FACET: exports.RESOLUTION_FACET, RELEASE_DATE_FACET: exports.RELEASE_DATE_FACET, SCOP_FACET: exports.SCOP_FACET, LIGAND_FACET: exports.LIGAND_FACET, ORGANISM_FACET: exports.ORGANISM_FACET, TAXONOMY_FACET: exports.TAXONOMY_FACET, PFAM_FACET: exports.PFAM_FACET, ENTITY_NAME_FACET: exports.ENTITY_NAME_FACET, CHEM_COMP_FACET: exports.CHEM_COMP_FACET, ECOD_FACET: exports.ECOD_FACET, CATH_FACET: exports.CATH_FACET, ENZYME_CLASS_FACET: exports.ENZYME_CLASS_FACET, GO_FUNCTION_FACET: exports.GO_FUNCTION_FACET, GO_PROCESS_FACET: exports.GO_PROCESS_FACET, GO_COMPONENT_FACET: exports.GO_COMPONENT_FACET, LIGAND_OF_INTEREST_FACET: exports.LIGAND_OF_INTEREST_FACET, METHODOLOGY_FACET: exports.METHODOLOGY_FACET, TAXONOMY_COUNT_FACET: exports.TAXONOMY_COUNT_FACET, CHIMERIC_FACET: exports.CHIMERIC_FACET, DISEASE_FACET: exports.DISEASE_FACET, INTERPRO_FACET: exports.INTERPRO_FACET, PHENOTYPE_FACET: exports.PHENOTYPE_FACET }; function goFacetTransform(bucket, facetConfig) { return bucket.map(d => (Object.assign(Object.assign({}, d), { label: d.labelPath[0] }))); }