Exemplo n.º 1
0
        public ICheckpointRunner GetCheckpointManager(IDirectoryLocation analysisFolder,
            string startingCheckpointName, string stopCheckpointName)
        {
            // Checkpoint Manager
            var parentDirectories = new Dictionary<string, IDirectoryLocation>
            {
                {"AnalysisFolder", analysisFolder},
                {"GenomesRoot", _genomesRoot}
            };
            JsonConverter[] converters =
            {
                new FileSystemLocationConverter(parentDirectories),
                new EnumerableConverter()
            };

            var settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.Auto,
                MissingMemberHandling = MissingMemberHandling.Error,
                Converters = converters,
                ContractResolver = new WritablePropertiesOnlyResolver(),
                ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
            };
            ICheckpointSerializer serializer = new CheckpointJsonSerializer(settings, IsasFilePaths.GetCheckpointFolder(analysisFolder), _logger);

            //todo: remove this increment logic once the legacy checkpointer is no longer used
            int tempStartCheckpoint;
            if (int.TryParse(startingCheckpointName, out tempStartCheckpoint))
            {
                tempStartCheckpoint++;
                startingCheckpointName = tempStartCheckpoint.ToString();
            }
            ICheckpointManager manager = new CheckpointManager(_logger, startingCheckpointName, stopCheckpointName);
            return new CheckpointRunner(_logger, analysisFolder, manager, serializer, _retainTemps);
        }
Exemplo n.º 2
0
        private ICheckpointRunner GetCheckpointRunner(ILogger logger, IDirectoryLocation outputDirectory, string startCheckpoint, string stopCheckpoint, IDirectoryLocation wholeGenomeFastaFolder)
        {

            var parentDirectories = new Dictionary<string, IDirectoryLocation>
            {
                {"Output", outputDirectory},
            };
            // Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta
            IDirectoryLocation genomeRoot = wholeGenomeFastaFolder?.Parent?.Parent?.Parent?.Parent?.Parent;
            if (genomeRoot != null) parentDirectories.Add("Genome", genomeRoot);

            JsonConverter[] converters = { new FileSystemLocationConverter(parentDirectories) };

            var settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.Auto,
                MissingMemberHandling = MissingMemberHandling.Error,
                Converters = converters,
                ContractResolver = new WritablePropertiesOnlyResolver(),
                ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
            };
            ICheckpointSerializer serializer = new CheckpointJsonSerializer(settings, IsasFilePaths.GetCheckpointFolder(outputDirectory), logger);
            ICheckpointManager manager = new CheckpointManager(logger, startCheckpoint, stopCheckpoint);
            return new CheckpointRunner(logger, outputDirectory, manager, serializer, true);
        }