GISTIC permutation null for copy-number scores
DefinitionPermuted GISTIC score at a marker#✓fully proved
The permuted score at marker m: ∑ j, x j (σ j m).
DefinitionGISTIC permutation null distribution#✓fully proved
The GISTIC permutation null at marker m: the probability that ∑ j, x j (σ j m) = g
when the permutations σ j of the markers are independent and uniform.
noncomputable def permutationNull {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) : ℝ :=
((Finset.univ.filter fun σ : Fin S → Equiv.Perm (Fin M) => permutedScore x m σ = g).card :
ℝ) / Fintype.card (Fin S → Equiv.Perm (Fin M))
def permutedScore {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M)
(σ : Fin S → Equiv.Perm (Fin M)) : ℝ :=
∑ j, x j (σ j m)
MathlibExt/Biology/CancerGenomics/GisticNull.lean:69
Uses 1 · Used by 4
DefinitionCount of marker choices with a given score#✓fully proved
The number of marker choices u : Fin S → Fin M (one marker per sample) with
∑ j, x j (u j) = g.
noncomputable def scoreCount {S M : ℕ} (x : Fin S → Fin M → ℝ) (g : ℝ) : ℕ :=
(Finset.univ.filter fun u : Fin S → Fin M => ∑ j, x j (u j) = g).card
TheoremThe GISTIC permutation null is the law of a sum of independent per-sample draws#✓fully proved
(Mermel et al. 2011): the probability of the score g is the fraction of the M ^ S marker
choices with that score, whatever the marker m.
theorem permutationNull_eq_count {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) :
permutationNull x m g = scoreCount x g / (M : ℝ) ^ S
noncomputable def permutationNull {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) : ℝ :=
((Finset.univ.filter fun σ : Fin S → Equiv.Perm (Fin M) => permutedScore x m σ = g).card :
ℝ) / Fintype.card (Fin S → Equiv.Perm (Fin M))
MathlibExt/Biology/CancerGenomics/GisticNull.lean:75
noncomputable def scoreCount {S M : ℕ} (x : Fin S → Fin M → ℝ) (g : ℝ) : ℕ :=
(Finset.univ.filter fun u : Fin S → Fin M => ∑ j, x j (u j) = g).card
MathlibExt/Biology/CancerGenomics/GisticNull.lean:81
Uses 3 · Used by 3
TheoremGISTIC null with no samples is a point mass at zero#✓fully proved
With no samples the null is the point mass at 0.
theorem permutationNull_zero {M : ℕ} (x : Fin 0 → Fin M → ℝ) (m : Fin M) (g : ℝ) :
permutationNull x m g = if g = 0 then 1 else 0
noncomputable def permutationNull {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) : ℝ :=
((Finset.univ.filter fun σ : Fin S → Equiv.Perm (Fin M) => permutedScore x m σ = g).card :
ℝ) / Fintype.card (Fin S → Equiv.Perm (Fin M))
MathlibExt/Biology/CancerGenomics/GisticNull.lean:75
TheoremConvolution step#✓fully proved
Adding sample S convolves the null of the first S samples with
the empirical law of the new sample, P_{S+1}(g) = ∑_v (1 / M) P_S(g - x_S(v)).
theorem permutationNull_succ {S M : ℕ} (x : Fin (S + 1) → Fin M → ℝ) (m : Fin M) (g : ℝ) :
permutationNull x m g =
∑ v : Fin M, (1 / (M : ℝ)) *
permutationNull (fun j => x j.castSucc) m (g - x (Fin.last S) v)
noncomputable def permutationNull {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) : ℝ :=
((Finset.univ.filter fun σ : Fin S → Equiv.Perm (Fin M) => permutedScore x m σ = g).card :
ℝ) / Fintype.card (Fin S → Equiv.Perm (Fin M))
MathlibExt/Biology/CancerGenomics/GisticNull.lean:75
DefinitionWindow minimum over consecutive markers#✓fully proved
The minimum of y over the window of n + 1 consecutive markers starting at i
(GeneGISTIC's per-sample gene-level value for a gene covering those markers).
noncomputable def windowMin {W n : ℕ} (y : Fin (W + n) → ℝ) (i : Fin W) : ℝ :=
Finset.univ.inf' Finset.univ_nonempty fun k : Fin (n + 1) =>
y ⟨i + k, by omega⟩
Used by 1
TheoremGeneGISTIC null#✓fully proved
GeneGISTIC null (Mermel et al. 2011): permuting the per-sample minima of all running
windows of n + 1 markers gives, at every window i, the law of a sum of independent draws
of one window minimum per sample.
theorem geneNull_eq_count {S W n : ℕ} (x : Fin S → Fin (W + n) → ℝ) (i : Fin W) (g : ℝ) :
permutationNull (fun j => windowMin (x j)) i g =
scoreCount (fun j => windowMin (x j)) g / (W : ℝ) ^ S
noncomputable def permutationNull {S M : ℕ} (x : Fin S → Fin M → ℝ) (m : Fin M) (g : ℝ) : ℝ :=
((Finset.univ.filter fun σ : Fin S → Equiv.Perm (Fin M) => permutedScore x m σ = g).card :
ℝ) / Fintype.card (Fin S → Equiv.Perm (Fin M))
MathlibExt/Biology/CancerGenomics/GisticNull.lean:75
noncomputable def windowMin {W n : ℕ} (y : Fin (W + n) → ℝ) (i : Fin W) : ℝ :=
Finset.univ.inf' Finset.univ_nonempty fun k : Fin (n + 1) =>
y ⟨i + k, by omega⟩
MathlibExt/Biology/CancerGenomics/GisticNull.lean:208
noncomputable def scoreCount {S M : ℕ} (x : Fin S → Fin M → ℝ) (g : ℝ) : ℕ :=
(Finset.univ.filter fun u : Fin S → Fin M => ∑ j, x j (u j) = g).card
MathlibExt/Biology/CancerGenomics/GisticNull.lean:81
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.