WinslowFan Claude Opus 5.5 commited on
Commit
0ba63b0
·
1 Parent(s): 9a4c158

Clarify binders vs entry context on the chain page

Browse files

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

frontend/src/components/ui.tsx CHANGED
@@ -71,7 +71,14 @@ export function FidelityBadge({ value }: { value: string | null | undefined }) {
71
  export function LigandBadge({ status }: { status: string | null | undefined }) {
72
  if (!status) return <span className="muted">—</span>;
73
  return (
74
- <span className="fid">
 
 
 
 
 
 
 
75
  <Swatch color={status === 'holo' ? 'var(--holo)' : 'var(--apo)'} shape="dot" />
76
  {status === 'holo' ? 'Holo' : 'Apo'}
77
  </span>
 
71
  export function LigandBadge({ status }: { status: string | null | undefined }) {
72
  if (!status) return <span className="muted">—</span>;
73
  return (
74
+ <span
75
+ className="fid"
76
+ title={
77
+ status === 'holo'
78
+ ? 'Holo: at least one small-molecule binder on this chain (DNA/RNA not counted)'
79
+ : 'Apo: no small-molecule binder on this chain (DNA/RNA not counted)'
80
+ }
81
+ >
82
  <Swatch color={status === 'holo' ? 'var(--holo)' : 'var(--apo)'} shape="dot" />
83
  {status === 'holo' ? 'Holo' : 'Apo'}
84
  </span>
frontend/src/pages/ChainPage.tsx CHANGED
@@ -352,13 +352,26 @@ export function ChainPage() {
352
  pfamIds={c.pfam_ids}
353
  />
354
  </Section>
355
- <Section title="Ligands & context">
 
 
 
356
  <dl className="facts">
357
- <Fact label="Ligand state">
358
- <LigandBadge status={c.binding_status} />
 
 
 
 
 
 
 
 
 
 
 
 
359
  </Fact>
360
- <Fact label="Nucleic acid">{c.nucleic_acid_binding && c.nucleic_acid_binding !== 'None' ? c.nucleic_acid_binding : 'None'}</Fact>
361
- <Fact label="Assembly">{capitalize(c.chain_composition)}</Fact>
362
  </dl>
363
  {c.binders.length > 0 ? (
364
  <div className="binders">
 
352
  pfamIds={c.pfam_ids}
353
  />
354
  </Section>
355
+ <Section
356
+ title="Binders & context"
357
+ kicker="Binders are small molecules on this chain; nucleic acid and assembly describe the whole PDB entry."
358
+ >
359
  <dl className="facts">
360
+ <Fact label="Small-molecule binders (this chain)">
361
+ {c.binders.length ? `${c.binders.length}` : 'None'}
362
+ </Fact>
363
+ <Fact label="Apo / holo" hint="Holo = at least one small-molecule binder on this chain; DNA/RNA are not counted">
364
+ <span className="fact-note">
365
+ <LigandBadge status={c.binding_status} />
366
+ <small className="muted">by small molecules only</small>
367
+ </span>
368
+ </Fact>
369
+ <Fact label="Nucleic acid in entry" hint="Non-protein polymer present anywhere in the PDB entry, not necessarily bound to this chain">
370
+ {c.nucleic_acid_binding && c.nucleic_acid_binding !== 'None' ? c.nucleic_acid_binding : 'None'}
371
+ </Fact>
372
+ <Fact label="Assembly (entry)" hint="Protein chain composition of the PDB entry">
373
+ {capitalize(c.chain_composition)}
374
  </Fact>
 
 
375
  </dl>
376
  {c.binders.length > 0 ? (
377
  <div className="binders">
frontend/src/styles/pages.css CHANGED
@@ -1984,3 +1984,11 @@
1984
  stroke-width: 3px;
1985
  pointer-events: none;
1986
  }
 
 
 
 
 
 
 
 
 
1984
  stroke-width: 3px;
1985
  pointer-events: none;
1986
  }
1987
+
1988
+ .fact-note {
1989
+ display: inline-flex;
1990
+ align-items: baseline;
1991
+ gap: 8px;
1992
+ flex-wrap: wrap;
1993
+ justify-content: flex-end;
1994
+ }