HLA-Verify
Was dieses MCP kann
Validates, normalizes, and quality-checks HLA allele names, typing reports, GL Strings, match counts, and published donor-recipient compatibility rules without clinical interpretation.
Tools
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['name', 'release'], 'properties': {'api': {'type': 'string'}, 'why': {'type': 'string'}, 'beta': {'type': 'string'}, 'code': {'type': 'string'}, 'demo': {'type': 'string'}, 'name': {'type': 'string'}, 'scope': {'type': 'string'}, 'agents': {'type': 'string'}, 'inputs': {'type': 'string'}, 'limits': {'type': 'string'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'beta_key': {'type': 'string'}, 'research': {'type': 'string'}, 'commercial': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'beta_signup': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'description': 'Exact HLA allele name, a lower-resolution prefix, or a deleted name. An allele string only, never a patient name, medical record number or other identifier.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'detail': {'type': 'string', 'description': 'Present only when the name is not assigned in this release (and then no other field is).'}, 'status': {'enum': ['assigned', 'valid_prefix', 'deleted'], 'type': 'string', 'description': 'assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; deleted: withdrawn or renamed (see successor).'}, 'g_group': {'type': ['string', 'null'], 'description': 'assigned: G group, or null.'}, 'ligands': {'type': 'object', 'required': ['expressed', 'leader_21', 'residue_80', 'bw', 'c_group', 'kir_ligand'], 'properties': {'bw': {'type': ['string', 'null'], 'description': 'Bw4 / Bw6 / non-Bw4 / unclassified / ambiguous / unknown / not_expressed; null for HLA-C.'}, 'c_group': {'type': ['string', 'null'], 'description': 'C1 / C2 / unclassified / ambiguous / unknown; null when not applicable.'}, 'expressed': {'type': 'boolean', 'description': 'false when every member allele is null (not expressed).'}, 'leader_21': {'type': 'string', 'description': 'Residue at leader position -21 (M or T; another letter is possible), ambiguous, unknown or not_expressed.'}, 'kir_ligand': {'type': 'string', 'description': 'C1 / C2 / Bw4 / Bw4-80I / Bw4-80T / none / ambiguous / unknown.'}, 'residue_80': {'type': 'string', 'description': 'Residue at position 80 (amino-acid letter), ambiguous, unknown or not_expressed.'}, 'ambiguities': {'type': 'object', 'description': 'For each ambiguous field, the distinct member values.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}}, 'description': "Class I (A/B/C) ligand facts, aggregated over member alleles: 'ambiguous' when members disagree, 'unknown' when no residue data."}, 'p_group': {'type': ['string', 'null'], 'description': 'assigned: P group, or null.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'serology': {'type': 'object', 'properties': {'expert': {'type': 'array', 'items': {'type': 'string'}}, 'assumed': {'type': 'array', 'items': {'type': 'string'}}, 'possible': {'type': 'array', 'items': {'type': 'string'}}, 'unambiguous': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'assigned: WMDA serologic equivalents by column (non-empty columns only).', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}, 'confirmed': {'type': 'boolean', 'description': 'assigned: confirmed (vs unconfirmed) allele.'}, 'successor': {'type': ['string', 'null'], 'description': 'deleted: the current name, or null if none.'}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}, 'null_allele': {'type': 'boolean', 'description': 'assigned: true for an N (null, not expressed) allele.'}, 'first_release': {'type': ['string', 'null'], 'description': 'assigned: first release the exact name appeared in.'}, 'members_count': {'type': 'integer', 'description': 'valid_prefix: number of assigned alleles under the prefix.'}, 'members_sample': {'type': 'array', 'items': {'type': 'string'}, 'description': 'valid_prefix: up to 10 member alleles.'}}, 'description': 'Found: release, name, status and the status-specific fields. Never assigned: only `detail`.'}
Eingabeschema
{'type': 'object', 'required': ['email'], 'properties': {'org': {'type': 'string', 'maxLength': 120, 'description': 'Lab, company or institution (optional).'}, 'email': {'type': 'string', 'maxLength': 254, 'description': "The user's email address."}, 'source': {'type': 'string', 'maxLength': 120, 'description': 'Where the signup came from, e.g. mcp (optional).'}, 'use_case': {'type': 'string', 'maxLength': 500, 'description': 'What they would use the API for (optional). No patient details.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['ok', 'status', 'message', 'release'], 'properties': {'ok': {'type': 'boolean', 'description': 'Always true; a rejected signup comes back as an error result.'}, 'status': {'enum': ['recorded', 'already_recorded'], 'type': 'string', 'description': 'already_recorded: the address was already on the list. Both are success — do not retry.'}, 'message': {'type': 'string', 'description': 'What to tell the user, including how to get a beta key today.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}}}
Eingabeschema
{'type': 'object', 'required': ['typing'], 'properties': {'typing': {'type': 'object', 'description': 'locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['release', 'valid', 'loci', 'issues', 'counts', 'profile', 'drb345'], 'properties': {'loci': {'type': 'object', 'description': 'Reported locus key -> one row per reported allele, in input order.', 'additionalProperties': {'type': 'array', 'items': {'type': 'object', 'required': ['reported', 'status', 'current_name', 'allele_2field', 'g_group', 'flags', 'antigen'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['ok', 'renamed', 'unresolvable'], 'type': 'string'}, 'antigen': {'type': 'string', 'description': "WMDA serologic antigen, or 'null' (not expressed) / 'uncertain'."}, 'g_group': {'type': 'string', 'description': 'G group; NONE, AMBIGUOUS or UNRESOLVABLE.'}, 'ligands': {'type': 'object', 'required': ['expressed', 'leader_21', 'residue_80', 'bw', 'c_group', 'kir_ligand'], 'properties': {'bw': {'type': ['string', 'null'], 'description': 'Bw4 / Bw6 / non-Bw4 / unclassified / ambiguous / unknown / not_expressed; null for HLA-C.'}, 'c_group': {'type': ['string', 'null'], 'description': 'C1 / C2 / unclassified / ambiguous / unknown; null when not applicable.'}, 'expressed': {'type': 'boolean', 'description': 'false when every member allele is null (not expressed).'}, 'leader_21': {'type': 'string', 'description': 'Residue at leader position -21 (M or T; another letter is possible), ambiguous, unknown or not_expressed.'}, 'kir_ligand': {'type': 'string', 'description': 'C1 / C2 / Bw4 / Bw4-80I / Bw4-80T / none / ambiguous / unknown.'}, 'residue_80': {'type': 'string', 'description': 'Residue at position 80 (amino-acid letter), ambiguous, unknown or not_expressed.'}, 'ambiguities': {'type': 'object', 'description': 'For each ambiguous field, the distinct member values.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}}, 'description': "Class I (A/B/C) ligand facts, aggregated over member alleles: 'ambiguous' when members disagree, 'unknown' when no residue data."}, 'reported': {'type': 'string'}, 'current_name': {'type': 'string', 'description': 'Current name, or UNRESOLVABLE.'}, 'allele_2field': {'type': 'string', 'description': 'Current 2-field form, or UNRESOLVABLE.'}}}}}, 'valid': {'type': 'boolean', 'description': 'true when there are no error-severity issues. Gate on this before using the typing.'}, 'counts': {'type': 'object', 'required': ['error', 'warning', 'info'], 'properties': {'info': {'type': 'integer'}, 'error': {'type': 'integer'}, 'warning': {'type': 'integer'}}}, 'drb345': {'type': ['object', 'null'], 'required': ['expected', 'reported', 'determinate'], 'properties': {'expected': {'type': 'array', 'items': {'type': 'string'}}, 'reported': {'type': 'array', 'items': {'type': 'string'}}, 'determinate': {'type': 'boolean'}}, 'description': 'DRB3/4/5 expected from DRB1 vs reported; null when DRB1 is not typed.'}, 'issues': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'locus', 'code', 'detail'], 'properties': {'code': {'type': 'string', 'description': 'unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.'}, 'locus': {'type': 'string', 'description': 'The locus key as reported.'}, 'detail': {'type': 'string'}, 'severity': {'enum': ['error', 'warning', 'info'], 'type': 'string', 'description': 'Any error makes the typing invalid.'}}}}, 'profile': {'type': 'object', 'required': ['b_leader_genotype', 'c_kir_ligand_genotype', 'kir_ligands_present', 'kir_ligand_status'], 'properties': {'b_leader_genotype': {'type': ['string', 'null'], 'description': "HLA-B -21 leader genotype such as M/T ('?' unknown); null when B is not typed."}, 'kir_ligand_status': {'enum': ['complete', 'incomplete'], 'type': 'string', 'description': 'complete only with two classified alleles at each of A, B and C.'}, 'kir_ligands_present': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Sorted subset of C1, C2, Bw4, Bw4-80I, Bw4-80T.'}, 'c_kir_ligand_genotype': {'type': ['string', 'null'], 'description': "HLA-C KIR ligand genotype such as C1/C2 ('none', '?'); null when C is not typed."}}}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}}}
Eingabeschema
{'type': 'object', 'required': ['recipient', 'donor'], 'properties': {'donor': {'type': 'object', 'description': 'locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}, 'recipient': {'type': 'object', 'description': 'locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['release', 'b_leader', 'kir_ligands', 'recipient_valid', 'donor_valid', 'issues'], 'properties': {'issues': {'type': 'object', 'required': ['recipient', 'donor'], 'properties': {'donor': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'locus', 'code', 'detail'], 'properties': {'code': {'type': 'string', 'description': 'unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.'}, 'locus': {'type': 'string', 'description': 'The locus key as reported.'}, 'detail': {'type': 'string'}, 'severity': {'enum': ['error', 'warning', 'info'], 'type': 'string', 'description': 'Any error makes the typing invalid.'}}}}, 'recipient': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'locus', 'code', 'detail'], 'properties': {'code': {'type': 'string', 'description': 'unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.'}, 'locus': {'type': 'string', 'description': 'The locus key as reported.'}, 'detail': {'type': 'string'}, 'severity': {'enum': ['error', 'warning', 'info'], 'type': 'string', 'description': 'Any error makes the typing invalid.'}}}}}}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'b_leader': {'type': 'object', 'required': ['recipient', 'donor', 'b_mismatches', 'leader_match', 'rule'], 'properties': {'rule': {'type': 'string'}, 'donor': {'type': ['string', 'null'], 'description': 'Donor HLA-B leader genotype; null when B is not typed.'}, 'recipient': {'type': ['string', 'null'], 'description': 'Recipient HLA-B leader genotype, e.g. M/T; null when B is not typed.'}, 'b_mismatches': {'type': ['integer', 'null'], 'description': 'HLA-B mismatch count; null when B is missing, over-typed or unresolvable on either side.'}, 'leader_match': {'type': ['boolean', 'null'], 'description': 'Set only for exactly one HLA-B mismatch with a known M/T leader on both mismatched alleles; otherwise null (not assessable).'}}}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}, 'donor_valid': {'type': 'boolean', 'description': 'Donor typing QC had no errors.'}, 'kir_ligands': {'type': 'object', 'required': ['recipient', 'donor', 'missing_in_recipient', 'missing_in_donor', 'status', 'rule'], 'properties': {'rule': {'type': 'string'}, 'donor': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['complete', 'incomplete'], 'type': 'string', 'description': 'Treat missing_in_* as provisional unless complete.'}, 'recipient': {'type': 'array', 'items': {'type': 'string'}, 'description': 'KIR ligand classes present (C1, C2, Bw4).'}, 'missing_in_donor': {'type': 'array', 'items': {'type': 'string'}}, 'missing_in_recipient': {'type': 'array', 'items': {'type': 'string'}}}}, 'recipient_valid': {'type': 'boolean', 'description': 'Recipient typing QC had no errors.'}}}
Eingabeschema
{'type': 'object', 'required': ['recipient', 'donor'], 'properties': {'donor': {'type': 'object', 'description': 'locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}, 'framework': {'enum': ['6/6', '8/8', '10/10', '12/12', 'antigen'], 'type': 'string', 'default': '8/8'}, 'recipient': {'type': 'object', 'description': 'locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['release', 'framework', 'count', 'verdicts', 'hvg_mismatches', 'gvh_mismatches', 'flags'], 'properties': {'count': {'type': 'string', 'description': "'matched/total' over the resolvable loci only, or UNRESOLVABLE when none resolves. Check verdicts for 'potential' loci before quoting it as a confident count."}, 'flags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'e.g. resolution_insufficient, null_allele, null_allele_mismatch.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'verdicts': {'type': 'object', 'description': 'Framework locus -> verdict.', 'additionalProperties': {'enum': ['match', 'mismatch', 'potential'], 'type': 'string', 'description': "potential: typing missing or not resolvable at the framework's level; excluded from count."}}, 'framework': {'enum': ['6/6', '8/8', '10/10', '12/12', 'antigen'], 'type': 'string'}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}, 'gvh_mismatches': {'type': 'integer', 'description': 'Graft-versus-host mismatches over non-potential loci.'}, 'hvg_mismatches': {'type': 'integer', 'description': 'Host-versus-graft mismatches over non-potential loci.'}}}
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'description': 'One reported HLA allele name, any nomenclature era. An allele string only, never a patient name, medical record number or other identifier.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['reported', 'current_name', 'allele_2field', 'g_group', 'flags'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'e.g. deprecated_name, nonexistent_allele, null_allele.'}, 'g_group': {'type': 'string', 'description': 'G group; NONE (no group), AMBIGUOUS (members differ) or UNRESOLVABLE.'}, 'reported': {'type': 'string', 'description': 'The input, verbatim.'}, 'current_name': {'type': 'string', 'description': 'Current full name in the pinned release, or UNRESOLVABLE.'}, 'allele_2field': {'type': 'string', 'description': 'Current 2-field form, or UNRESOLVABLE. Never present an UNRESOLVABLE name as an allele.'}}}
Eingabeschema
{'type': 'object', 'required': ['email', 'institution', 'use_case'], 'properties': {'email': {'type': 'string', 'maxLength': 254, 'description': "The applicant's email address. The approval code is sent here."}, 'source': {'type': 'string', 'maxLength': 120, 'description': 'Where the application came from, e.g. mcp (optional).'}, 'use_case': {'type': 'string', 'maxLength': 1000, 'description': 'What the research or teaching is, and what the API would be used for. This is what the decision is made on, so be specific. No patient details.'}, 'institution': {'type': 'string', 'maxLength': 200, 'description': 'University, hospital, institute or nonprofit the work is done at.'}, 'expected_volume': {'type': 'string', 'maxLength': 120, 'description': "Rough call or typing volume, e.g. 'about 20,000 typings a month' (optional)."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['ok', 'status', 'message', 'release'], 'properties': {'ok': {'type': 'boolean', 'description': 'Always true; a rejected application comes back as an error result.'}, 'status': {'enum': ['recorded', 'already_recorded'], 'type': 'string', 'description': 'already_recorded: this address already has an application on file. Both are success; do not retry.'}, 'message': {'type': 'string', 'description': 'What to tell the user, including that approval is by hand and not instant.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}}}
Eingabeschema
{'type': 'object', 'required': ['gl'], 'properties': {'gl': {'type': 'string', 'maxLength': 100000, 'description': 'GL String to validate and normalize. Allele names and GL grammar only, never patient identifiers.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['release', 'valid', 'normalized_gl', 'changed', 'loci', 'alleles', 'issues', 'counts'], 'properties': {'loci': {'type': 'array', 'items': {'type': 'string'}}, 'valid': {'type': 'boolean', 'description': 'true when there are no error-severity issues.'}, 'counts': {'type': 'object', 'required': ['error', 'warning'], 'properties': {'error': {'type': 'integer'}, 'warning': {'type': 'integer'}}}, 'issues': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'code', 'detail'], 'properties': {'code': {'type': 'string', 'description': 'unresolvable_allele, renamed_allele, whitespace_in_name, empty_element, mixed_locus_allele_list, haplotype_repeats_locus, genotype_loci_differ, more_than_two_haplotypes, genotype_list_loci_differ or locus_repeated_across_blocks.'}, 'detail': {'type': 'string'}, 'severity': {'enum': ['error', 'warning'], 'type': 'string'}}}}, 'alleles': {'type': 'array', 'items': {'type': 'object', 'required': ['token', 'status', 'current_name', 'locus'], 'properties': {'locus': {'type': ['string', 'null']}, 'token': {'type': 'string'}, 'status': {'enum': ['valid', 'renamed', 'group', 'unresolvable'], 'type': 'string'}, 'current_name': {'type': ['string', 'null'], 'description': 'null when unresolvable.'}}}, 'description': 'Each distinct allele token, in first-seen order.'}, 'changed': {'type': 'boolean', 'description': 'normalized_gl differs from the trimmed input.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}, 'normalized_gl': {'type': 'string', 'description': 'The GL String with outdated names replaced by current ones.'}}}
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 200000, 'description': 'HLA typing report text, or model output about HLA typing, to scan for allele names. Send the HLA content only: strip patient names, medical record numbers, dates of birth, accession and case identifiers, and any other patient details before sending. The caller is responsible for de-identifying the text; this service neither needs nor wants identifiers and does not store request bodies.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['release', 'tokens', 'counts', 'clean'], 'properties': {'clean': {'type': 'boolean', 'description': 'The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text.'}, 'counts': {'type': 'object', 'required': ['valid', 'deleted', 'group', 'fabricated_group', 'hallucinated'], 'properties': {'group': {'type': 'integer'}, 'valid': {'type': 'integer'}, 'deleted': {'type': 'integer'}, 'hallucinated': {'type': 'integer'}, 'fabricated_group': {'type': 'integer'}}, 'description': 'Number of distinct tokens per status.'}, 'tokens': {'type': 'array', 'items': {'type': 'object', 'required': ['token', 'status', 'note'], 'properties': {'note': {'type': 'string', 'description': 'Human-readable meaning of status.'}, 'flags': {'type': 'array', 'items': {'type': 'string'}}, 'token': {'type': 'string', 'description': 'The token without any HLA- prefix.'}, 'status': {'enum': ['valid', 'group', 'deleted', 'fabricated_group', 'hallucinated'], 'type': 'string', 'description': 'valid: assigned (or a valid prefix); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release.'}, 'g_group': {'type': 'string', 'description': 'G group; NONE or AMBIGUOUS when there is no single group.'}, 'successor': {'type': 'string', 'description': 'deleted: the name it was renamed to, when known.'}, 'current_2field': {'type': 'string', 'description': 'valid/deleted tokens that resolve: current 2-field form.'}}}, 'description': 'Each distinct allele-shaped token found, sorted by token.'}, 'release': {'type': 'string', 'description': 'IPD-IMGT/HLA release every verdict was computed against.'}, 'attribution': {'type': 'string', 'description': 'Data attribution (IPD-IMGT/HLA, CC-BY-ND).'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
Pubmed
Provides PubMed biomedical literature search and retrieval, including abstracts, full text where available, citation metadata, re…
Europepmc
Searches and retrieves biomedical literature from Europe PMC, including abstracts, full records, citations, publication metadata,…
Pharma Intel
Combines clinical trial, FDA, PubMed, drug identification, safety, pipeline, sales, patent, and pharmaceutical sponsor data for d…
Herb Tcm
Searches and retrieves Traditional Chinese Medicine herb, ingredient, target, disease, experiment, and supporting literature reco…
Opentargets
Provides Open Targets disease, drug, target, therapeutic-area, and disease-association knowledge graph lookups.
Chembl
Queries the ChEMBL drug-discovery database for molecules, mechanisms of action, indications, targets, and small-molecule bioactiv…
Hpo Api
Looks up Human Phenotype Ontology terms and associations between diseases, clinical phenotypes, and genes.