Exemple #1
0
        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));
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
 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);
 }