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); }
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); }