public Hgnc Clone() { var newGenes = new HgncGene[HgncGenes.Length]; for (var i = 0; i < HgncGenes.Length; i++) { newGenes[i] = HgncGenes[i].Clone(); } return(new Hgnc(newGenes, HgncIdToSymbol)); }
private static void AddCoordinatesFromMultipleGenes(HgncGene hgncGene, EnsemblGene ensemblGene, IEnumerable <RefSeqGene> refSeqGenes) { if (ensemblGene == null) { return; } AddCoordinatesFromGene(hgncGene, ensemblGene); foreach (var refSeqGene in refSeqGenes) { if (!IntervalUtilities.Overlaps(hgncGene.Start, hgncGene.End, refSeqGene.Start, refSeqGene.End)) { continue; } AddCoordinatesFromGene(hgncGene, refSeqGene); } }
private static void AddCoordinatesFromGene <T>(HgncGene hgncGene, IFlatGene <T> flatGene) where T : IFlatGene <T> { hgncGene.Start = hgncGene.Start == -1 ? flatGene.Start : Math.Min(hgncGene.Start, flatGene.Start); hgncGene.End = hgncGene.End == -1 ? flatGene.End : Math.Max(hgncGene.End, flatGene.End); }