INNER CODE UNIT · JavaScript

psmc_avg

lh3/psmc · utils/split-time.js:134

function psmc_avg(r, k0, scale) {
	// calculate alpha[]
	let alpha = [], x = 1.0;
	for (let i = k0; i < r.a.length - 1; ++i) {
		alpha.push(x);
		x *= Math.exp(-(r.a[i+1].t - r.a[i].t) / r.a[i].n);
	}
	alpha.push(x);
	alpha.push(0.0);
	// calculate modeled heterozygosity
	let z = 0.0; // C_pi
	for (let i = k0; i < r.a.length; ++i)
		z += r.a[i].n * (alpha[i - k0] - alpha[i - k0 + 1]);
	const C_pi = z;
	z = C_pi * r.theta0 / scale;
	// calculate posterior heterozygosity
	let y = 0.0, f = 0.0;
	for (let i = k0; i < r.a.length; ++i) {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…