示例#1
0
        public PianoAnnotator(IAnnotationProvider taProvider, ISequenceProvider sequenceProvider)
        {
            _taProvider       = taProvider;
            _sequenceProvider = sequenceProvider;

            GenomeAssembly = GetGenomeAssembly();
        }
示例#2
0
        public static Dictionary <string, string> GetEnstToGeneSymbols(ISequenceProvider sequenceProvider, TranscriptCacheData transcriptData)
        {
            var cache             = transcriptData.GetCache();
            var enstToGeneSymbols = new Dictionary <string, string>();

            foreach (var chromIndex in sequenceProvider.RefIndexToChromosome.Keys)
            {
                var overlappingTranscripts =
                    cache.TranscriptIntervalForest.GetAllOverlappingValues(chromIndex, 1, int.MaxValue);

                if (overlappingTranscripts == null)
                {
                    continue;
                }

                foreach (var transcript in overlappingTranscripts)
                {
                    if (transcript.Id.WithoutVersion.StartsWith("ENST"))
                    {
                        enstToGeneSymbols[transcript.Id.WithoutVersion] = transcript.Gene.Symbol;
                    }
                }
            }

            return(enstToGeneSymbols);
        }
        public TranscriptAnnotationProvider(string pathPrefix, ISequenceProvider sequenceProvider, ProteinConservationProvider conservationProvider)
        {
            Name                  = "Transcript annotation provider";
            _sequence             = sequenceProvider.Sequence;
            _refNameToChromosome  = sequenceProvider.RefNameToChromosome;
            _conservationProvider = conservationProvider;

            using (var stream = PersistentStreamUtils.GetReadStream(CacheConstants.TranscriptPath(pathPrefix)))
            {
                (_transcriptCache, TranscriptIntervalArrays, VepVersion) = InitiateCache(stream, sequenceProvider.RefIndexToChromosome, sequenceProvider.Assembly);
            }

            Assembly           = _transcriptCache.Assembly;
            DataSourceVersions = _transcriptCache.DataSourceVersions;

            // TODO: this is not great. We should not be using IEnumerables if we have to resort to strange stuff like this
            if (conservationProvider != null)
            {
                DataSourceVersions = DataSourceVersions.Concat(new[] { conservationProvider.Version });
            }

            _siftStream = PersistentStreamUtils.GetReadStream(CacheConstants.SiftPath(pathPrefix));
            _siftReader = new PredictionCacheReader(_siftStream, PredictionCacheReader.SiftDescriptions);

            _polyphenStream = PersistentStreamUtils.GetReadStream(CacheConstants.PolyPhenPath(pathPrefix));
            _polyphenReader = new PredictionCacheReader(_polyphenStream, PredictionCacheReader.PolyphenDescriptions);
        }
示例#4
0
 // constructor
 public ClinVarReader(Stream rcvStream, Stream vcvStream, ISequenceProvider sequenceProvider)
 {
     _rcvStream        = rcvStream;
     _vcvStream        = vcvStream;
     _sequenceProvider = sequenceProvider;
     _refChromDict     = sequenceProvider?.RefNameToChromosome;
 }
示例#5
0
 public static IAnnotator GetAnnotator(IAnnotationProvider taProvider, ISequenceProvider sequenceProvider,
                                       IAnnotationProvider saProviders, IAnnotationProvider conservationProvider,
                                       IGeneAnnotationProvider geneAnnotationProviders, IEnumerable <IPlugin> plugins = null)
 {
     return(new Annotator(taProvider, sequenceProvider, saProviders, conservationProvider,
                          geneAnnotationProviders, plugins));
 }
示例#6
0
        private static ExitCodes ProgramExecution()
        {
            const string tempLeftoverFilename = "LeftOvers.vcf.gz";
            Dictionary <string, StreamWriter> writers;

            ISequenceProvider srcSequenceProvider = ProviderUtilities.GetSequenceProvider(_srcRefSequence);
            ISequenceProvider desSequenceProvider = ProviderUtilities.GetSequenceProvider(_desRefSequence);

            using (var srcReader = GZipUtilities.GetAppropriateStreamReader(_srcMapFile))
                using (var destReader = GZipUtilities.GetAppropriateStreamReader(_destMapFile))
                    using (var leftoverWriter = GZipUtilities.GetStreamWriter(tempLeftoverFilename))
                    {
                        var chromMapper = new ChromMapper(srcReader, destReader, leftoverWriter, srcSequenceProvider, desSequenceProvider);
                        writers = chromMapper.Map();
                    }

            //now we will try to map the leftovers
            using (var destReader = GZipUtilities.GetAppropriateStreamReader(_destMapFile))
                using (var leftoverReader = GZipUtilities.GetAppropriateStreamReader(tempLeftoverFilename))
                {
                    var leftOverMapper = new LeftoverMapper(leftoverReader, destReader, writers, desSequenceProvider);
                    var leftoverCount  = leftOverMapper.Map();
                    Console.WriteLine($"{leftoverCount} leftovers mapped!!");
                }

            foreach (var writer in writers.Values)
            {
                writer.Dispose();
            }

            return(ExitCodes.Success);
        }
示例#7
0
 public LinksController(IMongoDatabase db, ISequenceProvider provider, DecBase68Converter converter, IAuthTokenProvider authTokenProvider)
 {
     _links             = db.GetCollection <ShortenedLinkModel>("ShortenedLinks");
     _sequenceProvider  = provider;
     _converter         = converter;
     _authTokenProvider = authTokenProvider;
 }
示例#8
0
 // constructor
 public ClinVarXmlReader(FileInfo clinVarXmlFileInfo, ISequenceProvider sequenceProvider)
 {
     _sequenceProvider   = sequenceProvider;
     _aligner            = new VariantAligner(_sequenceProvider.Sequence);
     _clinVarXmlFileInfo = clinVarXmlFileInfo;
     _refChromDict       = sequenceProvider.RefNameToChromosome;
 }
示例#9
0
 public RefMinorDbWriter(ExtendedBinaryWriter writer, ExtendedBinaryWriter indexWriter, DataSourceVersion version, ISequenceProvider refProvider, int schemaVersion)
 {
     _stream        = writer.BaseStream;
     _writer        = writer;
     _refProvider   = refProvider;
     _refMinorIndex = new RefMinorIndex(indexWriter, _refProvider.Assembly, version, schemaVersion);
 }
示例#10
0
 public BaseMapper(ILocalizationService translationService, ISequenceProvider sequenceProvider, IMapleLog log, IValidator <T> validator)
 {
     _translationService = translationService ?? throw new ArgumentNullException(nameof(translationService));
     _sequenceProvider   = sequenceProvider ?? throw new ArgumentNullException(nameof(sequenceProvider));
     _log       = log ?? throw new ArgumentNullException(nameof(log));
     _validator = validator ?? throw new ArgumentNullException(nameof(validator));
 }
示例#11
0
 public PrimateAiParser(Stream stream, ISequenceProvider referenceProvider, Dictionary <string, string> entrezToHgnc, Dictionary <string, string> ensemblToHgnc)
 {
     _stream            = stream;
     _entrezToHgnc      = entrezToHgnc;
     _ensemblToHgnc     = ensemblToHgnc;
     _referenceProvider = referenceProvider;
 }
示例#12
0
        public static IModel Create(
            [NotNull] ISequenceProvider sequenceProvider,
            [CanBeNull] IEnumerable <IModelRuleProvider> modelRuleProviders            = null,
            [CanBeNull] IEqualityComparer <object> nodePayloadEqualityComparer         = null,
            [CanBeNull] IEqualityComparer <object> relationshipPayloadEqualityComparer = null)
        {
            var payloadToModelNodeMap = ImmutableDictionary <object, IModelNode> .Empty;

            if (nodePayloadEqualityComparer != null)
            {
                payloadToModelNodeMap = payloadToModelNodeMap.WithComparers(nodePayloadEqualityComparer);
            }

            var payloadToModelRelationshipMap = ImmutableDictionary <object, IModelRelationship> .Empty;

            if (relationshipPayloadEqualityComparer != null)
            {
                payloadToModelRelationshipMap = payloadToModelRelationshipMap.WithComparers(relationshipPayloadEqualityComparer);
            }

            return(new Model(
                       ModelGraph.Empty(allowParallelEdges: false),
                       payloadToModelNodeMap,
                       payloadToModelRelationshipMap,
                       sequenceProvider,
                       modelRuleProviders,
                       nodePayloadEqualityComparer,
                       relationshipPayloadEqualityComparer));
        }
示例#13
0
 public LightningLogStore(ILogObjectTypeProvider typeProvider)
 {
     _typeProvider = typeProvider;
     _hashProvider = new LogEntryHashProvider(_typeProvider);
     _keyBuilder   = new SequenceKeyBuilder();
     _sequence     = new LogStoreSequenceProvider(this);
 }
示例#14
0
 public SpliceAiParser(Stream stream, ISequenceProvider sequenceProvider, Dictionary <ushort, IntervalArray <byte> > spliceIntervals, Dictionary <string, string> spliceToNirGeneSymbols)
 {
     _stream                 = stream;
     _sequenceProvider       = sequenceProvider;
     _spliceIntervals        = spliceIntervals;
     _spliceToNirvanaSymbols = spliceToNirGeneSymbols;
     _unresolvedSymbols      = new HashSet <string>();
 }
示例#15
0
 public PianoAnnotationProvider(string pathPrefix, ISequenceProvider sequenceProvider)
 {
     Name               = "Transcript annotation provider";
     _sequence          = sequenceProvider.Sequence;
     _transcriptCache   = InitiateCache(FileUtilities.GetReadStream(CacheConstants.TranscriptPath(pathPrefix)), sequenceProvider.GetChromosomeIndexDictionary(), sequenceProvider.GenomeAssembly, sequenceProvider.NumRefSeqs);
     GenomeAssembly     = _transcriptCache.GenomeAssembly;
     DataSourceVersions = _transcriptCache.DataSourceVersions;
 }
示例#16
0
 public MitoMapSvReader(FileInfo mitoMapFileInfo, ISequenceProvider sequenceProvider)
 {
     _mitoMapFileInfo  = mitoMapFileInfo;
     _dataType         = GetDataType();
     _sequenceProvider = sequenceProvider;
     _chromosome       = sequenceProvider?.RefNameToChromosome["chrM"];
     _variantAligner   = new VariantAligner(sequenceProvider?.Sequence);
 }
示例#17
0
 public MergedCosmicReader(string vcfFile, string tsvFile, ISequenceProvider sequenceProvider)
 {
     _vcfFileReader    = GZipUtilities.GetAppropriateStreamReader(vcfFile);
     _tsvFileReader    = GZipUtilities.GetAppropriateStreamReader(tsvFile);
     _sequenceProvider = sequenceProvider;
     _refChromDict     = _sequenceProvider.RefNameToChromosome;
     _studies          = new Dictionary <string, HashSet <CosmicItem.CosmicStudy> >();
 }
示例#18
0
 public LeftoverMapper(StreamReader leftoverReader, StreamReader destReader, Dictionary <string, StreamWriter> writers,
                       ISequenceProvider desSequenceProvider)
 {
     _leftoverReader      = leftoverReader;
     _destReader          = destReader;
     _writers             = writers;
     _desSequenceProvider = desSequenceProvider;
 }
示例#19
0
 public ModelService(
     [NotNull] ISequenceProvider sequenceProvider,
     [CanBeNull] IEnumerable <IModelRuleProvider> modelRuleProviders            = null,
     [CanBeNull] IEqualityComparer <object> nodePayloadEqualityComparer         = null,
     [CanBeNull] IEqualityComparer <object> relationshipPayloadEqualityComparer = null)
 {
     LatestModel            = Model.Create(sequenceProvider, modelRuleProviders, nodePayloadEqualityComparer, relationshipPayloadEqualityComparer);
     _modelUpdateLockObject = new object();
 }
        public OrderCommandsHandler(ISequenceProvider sequenceProvider)
        {
            Map <CreateOrderCommand>(c => new Order(c.OrderId, sequenceProvider.GetNext(OrdersSequenceName), c.UserId));

            Map <AddItemToOrderCommand>((c, a) => a.AddItem(c.SkuId, c.Quantity, c.TotalPrice));

            Map <CalculateOrderTotalCommand>((c, a) => a.CalculateTotal());

            Map <CompleteOrderCommand>((c, a) => a.Complete());
        }
示例#21
0
        /// <summary>
        /// Erstellt eine neue Instanz von ForwardSequenceProvider.
        /// </summary>
        /// <param name="name">String mit dem die Bezeichner erweitert werden.</param>
        /// <param name="parent">ISequenceProvider an den die Befehle weitergereicht werden.</param>
        public ForwardSequenceProvider(string name, ISequenceProvider parent)
        {
            if (parent == null)
            {
                throw new ArgumentNullException("parent");
            }

            this.name   = name;
            this.parent = parent;
        }
示例#22
0
        public static ITranscriptAnnotationProvider GetTranscriptAnnotationProvider(string path,
                                                                                    ISequenceProvider sequenceProvider)
        {
            var benchmark    = new Benchmark();
            var provider     = new TranscriptAnnotationProvider(path, sequenceProvider);
            var wallTimeSpan = benchmark.GetElapsedTime();

            Console.WriteLine("Cache Time: {0} ms", wallTimeSpan.TotalMilliseconds);
            return(provider);
        }
示例#23
0
 public SpliceAiParser(Stream stream, ISequenceProvider sequenceProvider, Dictionary <ushort, IntervalArray <byte> > spliceIntervals, IntervalForest <string> geneTree = null, Dictionary <string, List <string> > geneSynonyms = null)
 {
     _stream                     = stream;
     _sequenceProvider           = sequenceProvider;
     _spliceIntervals            = spliceIntervals;
     _geneTree                   = geneTree;
     _geneSynonyms               = geneSynonyms;
     _unresolvedSymbols          = new HashSet <string>();
     _currentPositionGeneSymbols = new HashSet <string>();
 }
示例#24
0
 private VcfReader(StreamReader headerReader, StreamReader vcfLineReader, ISequenceProvider sequenceProvider,
                   IRefMinorProvider refMinorProvider, IVcfFilter vcfFilter)
 {
     _headerReader        = headerReader;
     _reader              = vcfLineReader;
     _variantFactory      = new VariantFactory(sequenceProvider);
     _refMinorProvider    = refMinorProvider;
     _vcfFilter           = vcfFilter;
     _refNameToChromosome = sequenceProvider.RefNameToChromosome;
 }
示例#25
0
        public static Dictionary <ushort, IntervalArray <byte> > GetSpliceIntervals(ISequenceProvider sequenceProvider, TranscriptCacheData transcriptData)
        {
            var cache = transcriptData.GetCache();

            var spliceIntervalDict = new Dictionary <ushort, IntervalArray <byte> >(sequenceProvider.RefIndexToChromosome.Count);

            foreach (var chromIndex in sequenceProvider.RefIndexToChromosome.Keys)
            {
                var spliceIntervals        = new List <Interval <byte> >(8 * 1024);
                var overlappingTranscripts =
                    cache.TranscriptIntervalForest.GetAllOverlappingValues(chromIndex, 1, int.MaxValue);

                if (overlappingTranscripts == null)
                {
                    continue;
                }

                foreach (var transcript in overlappingTranscripts)
                {
                    if (transcript.Id.IsPredictedTranscript())
                    {
                        continue;
                    }
                    bool isFirstExon = true;
                    foreach (var transcriptRegion in transcript.TranscriptRegions)
                    {
                        if (transcriptRegion.Type != TranscriptRegionType.Exon)
                        {
                            continue;
                        }
                        var firstSplicePosition  = transcriptRegion.Start;
                        var secondSplicePosition = transcriptRegion.End;

                        var firstInterval  = new Interval <byte>(firstSplicePosition - SpliceFlankLength, firstSplicePosition + SpliceFlankLength, 0);
                        var secondInterval = new Interval <byte>(secondSplicePosition - SpliceFlankLength, secondSplicePosition + SpliceFlankLength, 0);

                        if (!isFirstExon)
                        {
                            spliceIntervals.Add(firstInterval);
                        }
                        spliceIntervals.Add(secondInterval);
                        isFirstExon = false;
                    }
                    //remove the last added interval since this is the tail of the last exon- which is not a splice site
                    if (spliceIntervals.Count > 0)
                    {
                        spliceIntervals.RemoveAt(spliceIntervals.Count - 1);
                    }
                }

                spliceIntervalDict[chromIndex] = new IntervalArray <byte>(spliceIntervals.OrderBy(x => x.Begin).ThenBy(x => x.End).ToArray());
            }

            return(spliceIntervalDict);
        }
示例#26
0
 public ChromMapper(StreamReader srcReader, StreamReader destReader, StreamWriter leftoverWriter,
                    ISequenceProvider srcSequenceProvider, ISequenceProvider desSequenceProvider)
 {
     _srcReader           = srcReader;
     _destReader          = destReader;
     _writers             = new Dictionary <string, StreamWriter>();
     _leftoverWriter      = leftoverWriter;
     _srcSequenceProvider = srcSequenceProvider;
     _desSequenceProvider = desSequenceProvider;
     _destinationVariants = new Dictionary <(long, int, string), List <int> >();
 }
示例#27
0
        public IndexModule(ISequenceProvider provider)
        {
            _provider = provider;
            Get["/"]  = parameters => View["index"];

            Post["/Sequence/Parse"] = _ =>
            {
                var data = this.Bind <SequenceModel>();
                return(Response.AsJson(_provider.Provide(data?.FileName, data?.Content).Select(x => x.ToString())));
            };
        }
示例#28
0
        public SaMiscTsvWriter(string outputPath, DataSourceVersion dataSourceVersion, string assembly, string keyName, ISequenceProvider sequenceProvider)
        {
            var fileName = keyName + "_" + dataSourceVersion.Version.Replace(" ", "_") + ".misc.tsv.gz";

            _bgzipTextWriter = new BgzipTextWriter(Path.Combine(outputPath, fileName));

            _bgzipTextWriter.Write(GetHeader(dataSourceVersion, assembly));

            _tsvIndex         = new TsvIndex(Path.Combine(outputPath, fileName + ".tvi"));
            _sequenceProvider = sequenceProvider;
        }
示例#29
0
文件: VcfReader.cs 项目: LvLH/Nirvana
 private VcfReader(StreamReader headerReader, StreamReader vcfLineReader, ISequenceProvider sequenceProvider,
                   IRefMinorProvider refMinorProvider, IVcfFilter vcfFilter, IVariantIdCreator vidCreator, IMitoHeteroplasmyProvider mitoHeteroplasmyProvider)
 {
     _headerReader             = headerReader;
     _reader                   = vcfLineReader;
     _variantFactory           = new VariantFactory(sequenceProvider.Sequence, vidCreator);
     _sequenceProvider         = sequenceProvider;
     _refMinorProvider         = refMinorProvider;
     _vcfFilter                = vcfFilter;
     _refNameToChromosome      = sequenceProvider.RefNameToChromosome;
     _mitoHeteroplasmyProvider = mitoHeteroplasmyProvider;
 }
示例#30
0
        public static IRecomposer Create(ISequenceProvider sequenceProvider,
                                         string inputCachePrefix)
        {
            var transcriptIntervalArrays = ReadWriteUtilities.ReadCache(FileUtilities.GetReadStream(CacheConstants.TranscriptPath(inputCachePrefix)), sequenceProvider.RefIndexToChromosome);

            var(geneIntervalForest, _) = ReadWriteUtilities.GetIntervalAndTranscriptsForeachGene(transcriptIntervalArrays);
            var codonInfoProvider = CodonInfoProvider.CreateCodonInfoProvider(transcriptIntervalArrays);
            var variantGenerator  = new VariantGenerator(sequenceProvider);
            var positionBuffer    = new PositionBuffer(codonInfoProvider, geneIntervalForest);

            return(new Recomposer(new PositionProcessor(positionBuffer, codonInfoProvider, variantGenerator), sequenceProvider));
        }