/// <summary> /// executes the program /// </summary> protected override void ProgramExecution() { var bundle = GetDataBundle(ConfigurationSettings.InputReferencePath, ConfigurationSettings.InputPrefix); var header = bundle.Cache.Header.Custom as GlobalCustomHeader; if (header == null) { throw new InvalidCastException("Unable to cast the custom header as a GlobalCustomHeader"); } var regulatoryElement = MiniCacheUtilities.GetDesiredRegulatoryElement(bundle, ConfigurationSettings.RegulatoryElementId); if (regulatoryElement == null) { throw new UserErrorException($"Unable to find the desired regulatory element: {ConfigurationSettings.RegulatoryElementId}"); } var updater = new RegulatoryUpdater(ConfigurationSettings.RegulatoryElementId, regulatoryElement.ReferenceIndex, bundle.Cache.Header.TranscriptSource.ToString()); var outputFiles = new List <string>(); var status = updater.Update(bundle, ConfigurationSettings.OutputDirectory, header.VepVersion, outputFiles); UnitTestResourceCrawler.CleanupFiles(status, new List <string>(), outputFiles); if (status != UpdateStatus.Current) { throw new UserErrorException($"Unable to create the mini-cache file. Status: {status}"); } Console.WriteLine(); Console.WriteLine("- created the following files:"); foreach (var path in outputFiles) { Console.WriteLine(Path.GetFileNameWithoutExtension(path)); } }
/// <summary> /// executes the program /// </summary> protected override void ProgramExecution() { var bundle = GetDataBundle(ConfigurationSettings.InputReferencePath, ConfigurationSettings.InputPrefix); var header = bundle.Cache.Header.Custom as GlobalCustomHeader; if (header == null) { throw new InvalidCastException("Unable to cast the custom header as a GlobalCustomHeader"); } IUpdater updater = null; var outputFiles = new List <string>(); var transcriptDataSource = bundle.Cache.Header.TranscriptSource.ToString(); if (_useTranscriptUpdater) { var transcripts = GetDesiredTranscripts(bundle, ConfigurationSettings.TranscriptIds); if (transcripts.Count == 0) { throw new UserErrorException($"Unable to find the desired transcript: {ConfigurationSettings.TranscriptIds}"); } var transcriptId = ConfigurationSettings.TranscriptIds.First(); var transcript = transcripts[0]; updater = new TranscriptUpdater(transcriptId, transcript.ReferenceIndex, transcriptDataSource); } else if (_useMultiTranscriptUpdater) { var transcripts = GetDesiredTranscripts(bundle, ConfigurationSettings.TranscriptIds); if (transcripts.Count < 2) { throw new UserErrorException($"Unable to find two or more transcripts: {ConfigurationSettings.TranscriptIds}"); } var ids = new List <string>(); ids.AddRange(ConfigurationSettings.TranscriptIds); updater = new MultiTranscriptUpdater(ids, transcriptDataSource); } else if (_usePositionUpdater) { var refIndex = bundle.Sequence.Renamer.GetReferenceIndex(ConfigurationSettings.ReferenceName); updater = new PositionUpdater(refIndex, ConfigurationSettings.ReferencePosition, ConfigurationSettings.ReferenceAllele, ConfigurationSettings.AlternateAllele, transcriptDataSource); } else if (_usePositionRangeUpdater) { var refIndex = bundle.Sequence.Renamer.GetReferenceIndex(ConfigurationSettings.ReferenceName); updater = new PositionRangeUpdater(refIndex, ConfigurationSettings.ReferencePosition, ConfigurationSettings.ReferenceEndPosition, transcriptDataSource); } if (updater == null) { throw new NullReferenceException("The IUpdater is null."); } var status = updater.Update(bundle, ConfigurationSettings.OutputDirectory, header.VepVersion, outputFiles); UnitTestResourceCrawler.CleanupFiles(status, new List <string>(), outputFiles); if (status != UpdateStatus.Current) { throw new UserErrorException($"Unable to create the mini-cache file. Status: {status}"); } Console.WriteLine(); Console.WriteLine("- created the following files:"); foreach (var path in outputFiles) { Console.WriteLine(Path.GetFileNameWithoutExtension(path)); } }