hyphy-scope
Version:
Reusable Svelte components for HyPhy analysis visualization
105 lines (104 loc) • 2.82 kB
TypeScript
/**
* Multi-Hit utility functions
*/
export interface MultiHitResults {
'test results': {
'Triple-hit vs single-hit'?: TestResult;
'Triple-hit vs double-hit'?: TestResult;
'Triple-hit vs Triple-hit-island'?: TestResult;
'Double-hit vs single-hit'?: TestResult;
'Triple-hit-island vs double-hit'?: TestResult;
};
'Evidence Ratios': {
[key: string]: number[][];
};
'Site Log Likelihood': {
[key: string]: number[][];
};
'Site substitutions': {
[siteIndex: string]: {
[sourceCodon: string]: {
[targetCodon: string]: any;
};
};
};
input?: any;
fits?: any;
tested?: any[];
}
export interface TestResult {
LRT: number;
'p-value': number;
}
export interface ERThresholds {
[key: string]: [number, number];
}
export interface CodonLayout {
len: number;
color: string;
label: string;
id: string;
aa: string;
}
export interface ChordData {
count: number;
source: {
id: string;
start: number;
end: number;
codon: string;
};
target: {
id: string;
start: number;
end: number;
codon: string;
};
}
export declare const translationTable: {
[codon: string]: string;
};
/**
* Get unique amino acids in order
*/
export declare function getUniqueAminoAcids(): string[];
/**
* Get amino acid index for color mapping
*/
export declare function getAminoAcidIndex(aa: string): number;
/**
* Format evidence ratio data for table display
*/
export declare function formatEvidenceRatios(data: MultiHitResults): number[][];
/**
* Format site log likelihood data for table display
*/
export declare function formatSiteLogLikelihood(data: MultiHitResults): number[][];
export declare function getERRange(values: number[]): [number, number];
/**
* Initialize ER thresholds from data
*/
export declare function initializeERThresholds(data: MultiHitResults): ERThresholds;
/**
* Count nucleotide differences between two codons
*/
export declare function countNucleotideDifferences(codon1: string, codon2: string): number;
/**
* Prepare codon substitution data for circos visualization
*/
export declare function prepareCircosData(substitutions: MultiHitResults['Site substitutions'], evidenceRatios: MultiHitResults['Evidence Ratios'], erThresholds: ERThresholds, minTransitions: number): {
layout: CodonLayout[];
chords: ChordData[];
maxCount: number;
};
/**
* Get color for a codon based on its amino acid
*/
export declare function getCodonColor(codon: string): string;
/**
* Get test result summary
*/
export declare function getTestSummary(data: MultiHitResults, pThreshold?: number): {
significant: string[];
total: number;
};