public static void Main(string[] args) { Expression <Func <object, object> > exp = x => ((MyClass)x).Value.Length; var m = new MyClass { Value = "ssdf", /*Nested = new MyClass { * Value = "asd" * }*/ }; RUtils <MyClass> .TrySet(m, "Nested.Nested.Nested.Value", "fdg"); RUtils <MyClass> .TryGet(m, "Nested.Nested.Nested.Value", out var value); RUtils <MyClass> .Set(obj, "Value", "asd"); RUtils <MyClass> .Get(obj, "Value"); var summary = BenchmarkRunner.Run <RUtils_Benchmarks>(new Config()); Console.WriteLine(); Console.WriteLine("\nString value set and then get"); var runCount = summary.Reports.Length;// / 2; foreach (var report in summary.Reports.Take(runCount).OrderBy(x => x.ResultStatistics.Median)) { var ns = $"{report.ResultStatistics.Median:N1} ns"; var spase = new string(' ', 10 - ns.Length); Console.WriteLine($"{ns}{spase}{Info(report)}"); } /* * Console.WriteLine("\nString value set and then get"); * foreach (var report in summary.Reports.Skip(runCount).Take(runCount).OrderBy(x => x.ResultStatistics.Median)) { * var ns = $"{report.ResultStatistics.Median:N1} ns"; * var spase = new string(' ', 10 - ns.Length); * * Console.WriteLine($"{ns}{spase}{Info(report)}"); * }*/ /* * Console.WriteLine("\nString value set and then get"); * foreach (var report in summary.Reports.Skip(16).OrderBy(x => x.ResultStatistics.Median)) { * var ns = $"{report.ResultStatistics.Median:N1} ns"; * var spase = new string(' ', 10 - ns.Length); * * Console.WriteLine($"{ns}{spase}{Info(report)}"); * } */ Console.WriteLine(); Console.ReadLine(); }
public string REtilsTrySetValue() { RUtils <MyClass> .TrySet(obj, "Value", "asd"); RUtils <MyClass> .TryGet(obj, "Value", out object value); return((string)value); }
private List <string> SummarizeBasicResult() { var result = new List <string>(); var qcitems = (from dir in Directory.GetDirectories(options.InputDir) select new { Sample = Path.GetFileName(dir), Data = (from subdir in Directory.GetDirectories(dir, "*_fastqc") let summaryFile = Path.Combine(subdir, "summary.txt") select FastQCSummaryItem.ReadFromFile(summaryFile)).ToArray() }).ToList(); using (var sw = new StreamWriter(options.OutputFile)) { sw.WriteLine("File\tCategory\tQCResult"); foreach (var qc in qcitems) { var filename = qc.Sample; WriteData(sw, filename, "Basic Statistics", qc.Data, m => m.BasicStatistics); WriteData(sw, filename, "Per base sequence quality", qc.Data, m => m.PerBaseSequenceQuality); WriteData(sw, filename, "Per tile sequence quality", qc.Data, m => m.PerTileSequenceQuality); WriteData(sw, filename, "Per sequence quality scores", qc.Data, m => m.PerSequenceQualityScore); WriteData(sw, filename, "Per base sequence content", qc.Data, m => m.PerBaseSequenceContent); WriteData(sw, filename, "Per sequence GC content", qc.Data, m => m.PerSequenceGCContent); WriteData(sw, filename, "Per base N content", qc.Data, m => m.PerBaseNContent); WriteData(sw, filename, "Sequence Length Distribution", qc.Data, m => m.SequenceLengthDistribution); WriteData(sw, filename, "Sequence Duplication Levels", qc.Data, m => m.SequenceDuplicatonLevels); WriteData(sw, filename, "Overrepresented sequences", qc.Data, m => m.OverrepresentedSequences); WriteData(sw, filename, "Adapter Content", qc.Data, m => m.AdapterContent); } } result.Add(options.OutputFile); var rfile = new FileInfo(FileUtils.GetTemplateDir() + "/fastqc_summary.r").FullName; if (File.Exists(rfile)) { var targetrfile = options.OutputFile + ".r"; var resultfile = options.OutputFile + ".png"; var definitions = new List <string>(); definitions.Add(string.Format("outputdir<-\"{0}\"", Path.GetDirectoryName(Path.GetFullPath(options.OutputFile)).Replace("\\", "/"))); definitions.Add(string.Format("inputfile<-\"{0}\"", Path.GetFileName(options.OutputFile))); definitions.Add(string.Format("outputfile<-\"{0}\"", Path.GetFileName(resultfile))); RUtils.PerformRByTemplate(rfile, targetrfile, definitions); if (File.Exists(resultfile)) { result.Add(resultfile); } } return(result); }
/// <summary> /// Returns whole <paramref name="entity"/>, represented as sequence of <typeparamref name="TParameter"/>. /// </summary> /// <returns>IEnumerable (sequence) of TParameter</returns> protected virtual IEnumerable <TParameter> ParametersFrom <TEntity>(IEntityInfo info, TEntity entity) where TEntity : class { return(info.PersistedProperties.Select(x => { object value; if (!RUtils <TEntity> .TryGet(entity, x.Key, out value)) { throw new InvalidOperationException($"Entity of type {entity.GetType()} should contain property '{x.Key}', " + "but in some reason value or that property could not be getted."); } var criterion = new DataCriterion { Name = x.Key, Type = x.Value.PropertyType, Value = value }; return ParameterWith(info, criterion); })); }
public static T To <T>([NotNull] this DataRow row, [NotNull] T item) where T : class { foreach (DataColumn column in row.Table.Columns) { var value = row[column]; if (value == DBNull.Value || value == null) { continue; } if (!RUtils <T> .TrySet(item, column.ColumnName, value)) { Log.TraceEvent(TraceEventType.Warning, $"Can't set property {column.ColumnName} from '{typeof (T).FullName}' context."); } } return(item); }
private List <string> SummarizeCount() { var result = new List <string>(); var qcitems = (from dir in Directory.GetDirectories(options.InputDir) select new { Sample = Path.GetFileName(dir), Data = (from subdir in Directory.GetDirectories(dir, "*_fastqc") let dataFile = Path.Combine(subdir, "fastqc_data.txt") let line = File.ReadAllLines(dataFile).Where(m => m.StartsWith("Total Sequences")).First() select int.Parse(line.StringAfter("\t"))).ToArray() }).ToList(); var datafile = Path.ChangeExtension(options.OutputFile, ".reads.tsv"); var errors = qcitems.Where(m => m.Data.Any(l => l != m.Data.First())).ToArray(); if (errors.Length > 0) { var errorFile = datafile + ".error"; using (var sw = new StreamWriter(errorFile)) { sw.WriteLine("Sample\tRead1\tRead2"); foreach (var qc in errors) { sw.WriteLine("{0}\t{1}\t{2}", qc.Sample, qc.Data[0], qc.Data[1]); } } result.Add(errorFile); } using (var sw = new StreamWriter(datafile)) { sw.WriteLine("Sample\tReads"); foreach (var qc in qcitems) { sw.WriteLine("{0}\t{1}", qc.Sample, qc.Data.Distinct().Sum()); } } result.Add(datafile); var rfile = new FileInfo(FileUtils.GetTemplateDir() + "/fastqc_summary_count.r").FullName; if (File.Exists(rfile)) { var targetrfile = datafile + ".r"; var resultfile = datafile + ".png"; var definitions = new List <string>(); definitions.Add(string.Format("outputdir<-\"{0}\"", Path.GetDirectoryName(Path.GetFullPath(options.OutputFile)).Replace("\\", "/"))); definitions.Add(string.Format("inputfile<-\"{0}\"", Path.GetFileName(datafile))); definitions.Add(string.Format("outputfile<-\"{0}\"", Path.GetFileName(resultfile))); RUtils.PerformRByTemplate(rfile, targetrfile, definitions); if (File.Exists(resultfile)) { result.Add(resultfile); } } return(result); }
public string REtilsSetValue() { RUtils <MyClass> .Set(obj, "Value", "asd"); return((string)RUtils <MyClass> .Get(obj, "Value")); }