コード例 #1
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);
        }
コード例 #2
0
        public void GetNsaProvider_NoSaFile_ReturnNull()
        {
            var annotationFiles = new AnnotationFiles();
            var nsaProvider     = ProviderUtilities.GetNsaProvider(annotationFiles);

            Assert.Null(nsaProvider);
        }
コード例 #3
0
        public ValidationResult Run(ValidationConfig config, ILambdaContext context)
        {
            string snsTopicArn = null;

            try
            {
                LogUtilities.UpdateLogger(context.Logger, null);
                LogUtilities.LogLambdaInfo(context, CommandLineUtilities.InformationalVersion);
                LogUtilities.LogObject("Config", config);
                LogUtilities.Log(new[] { LambdaUrlHelper.UrlBaseEnvironmentVariableName, LambdaUtilities.SnsTopicKey });
                LambdaUtilities.GarbageCollect();
                snsTopicArn = LambdaUtilities.GetEnvironmentVariable(LambdaUtilities.SnsTopicKey);

                config.Validate();
                GenomeAssembly genomeAssembly = GenomeAssemblyHelper.Convert(config.genomeAssembly);

                string nirvanaS3Ref = LambdaUrlHelper.GetRefUrl(genomeAssembly);
                var    refProvider  = ProviderUtilities.GetSequenceProvider(nirvanaS3Ref);

                using (var stream = PersistentStreamUtils.GetReadStream(config.customStrUrl))
                    TryLoadStrFile(stream, genomeAssembly, refProvider);
            }
            catch (Exception exception)
            {
                return(HandleException(config.id, exception, snsTopicArn));
            }

            return(GetSuccessOutput(config.id));
        }
コード例 #4
0
        private static (Annotator Annotator, IDictionary <string, IChromosome> RefNames) GetAnnotatorAndReferenceDict(string cacheFilePrefix, List <string> saPaths)
        {
            var sequenceFilePath             = cacheFilePrefix + ".bases";
            var sequenceProvider             = ProviderUtilities.GetSequenceProvider(sequenceFilePath);
            var refNames                     = sequenceProvider.RefNameToChromosome;
            var transcriptAnnotationProvider = ProviderUtilities.GetTranscriptAnnotationProvider(cacheFilePrefix, sequenceProvider);
            var saProvider                   = ProviderUtilities.GetSaProvider(saPaths);
            var conservationProvider         = ProviderUtilities.GetConservationProvider(saPaths);

            var annotator = new Annotator(transcriptAnnotationProvider, sequenceProvider, saProvider, conservationProvider, null);

            return(annotator, refNames);
        }
コード例 #5
0
        private static (Annotator Annotator, ISequenceProvider SequenceProvider) GetAnnotatorAndSequenceProvider(string cacheFilePrefix, List <string> saPaths)
        {
            var annotationFiles = new AnnotationFiles();

            saPaths?.ForEach(x => annotationFiles.AddFiles(x));

            var sequenceFilePath             = cacheFilePrefix + ".bases";
            var sequenceProvider             = ProviderUtilities.GetSequenceProvider(sequenceFilePath);
            var transcriptAnnotationProvider = ProviderUtilities.GetTranscriptAnnotationProvider(cacheFilePrefix, sequenceProvider);
            var saProvider           = ProviderUtilities.GetNsaProvider(annotationFiles);
            var conservationProvider = ProviderUtilities.GetConservationProvider(annotationFiles);

            var annotator = new Annotator(transcriptAnnotationProvider, sequenceProvider, saProvider, conservationProvider, null);

            return(annotator, sequenceProvider);
        }
コード例 #6
0
        internal static IAnnotatedPosition GetAnnotatedPosition(string cacheFilePrefix, List <string> saPaths,
                                                                string vcfLine, bool enableVerboseTranscripts)
        {
            var refMinorProvider = ProviderUtilities.GetRefMinorProvider(saPaths);
            var annotatorAndRef  = GetAnnotatorAndReferenceDict(cacheFilePrefix, saPaths);

            var annotator      = annotatorAndRef.Annotator;
            var refNames       = annotatorAndRef.RefNames;
            var variantFactory = new VariantFactory(refNames, refMinorProvider, enableVerboseTranscripts);

            var position = VcfReaderUtils.ParseVcfLine(vcfLine, variantFactory, refNames);

            var annotatedPosition = annotator.Annotate(position);

            return(annotatedPosition);
        }
コード例 #7
0
        internal static IAnnotatedPosition GetAnnotatedPosition(string cacheFilePrefix, List <string> saPaths,
                                                                string vcfLine)
        {
            var annotationFiles = new AnnotationFiles();

            saPaths?.ForEach(x => annotationFiles.AddFiles(x));

            var refMinorProvider = ProviderUtilities.GetRefMinorProvider(annotationFiles);

            var(annotator, sequenceProvider) = GetAnnotatorAndSequenceProvider(cacheFilePrefix, saPaths);

            var variantFactory    = new VariantFactory(sequenceProvider);
            var position          = ParseVcfLine(vcfLine, refMinorProvider, variantFactory, sequenceProvider.RefNameToChromosome);
            var annotatedPosition = annotator.Annotate(position);

            return(annotatedPosition);
        }
コード例 #8
0
        public void SqlCeSchemaShouldBeGeneratedAndUsable()
        {
            var recordDescriptors = new[] {
                new RecordBlueprint {
                    TableName = "Hello", Type = typeof(FooRecord)
                }
            };

            ProviderUtilities.RunWithSqlCe(recordDescriptors,
                                           sessionFactory => {
                var session = sessionFactory.OpenSession();
                var foo     = new FooRecord {
                    Name = "hi there"
                };
                session.Save(foo);
                session.Flush();
                session.Close();

                Assert.That(foo, Is.Not.EqualTo(0));
            });
        }
コード例 #9
0
        public void SqlServerSchemaShouldBeGeneratedAndUsable()
        {
            var recordDescriptors = new[] {
                new RecordBlueprint {
                    TableName = "Hello", Type = typeof(FooRecord)
                }
            };

            ProviderUtilities.RunWithSqlServer(recordDescriptors,
                                               sessionFactory => {
                var session = sessionFactory.OpenSession();
                var foo     = new FooRecord {
                    Name = "hi there", Timespan = DateTime.Now
                };

                session.Insert(foo);
                //session.Flush();
                session.Close();

                Assert.NotEqual(foo.Id, default(int));
            });
        }