public void TestLoadMatrixParam() { var param = new PerseusLoadMatrixParam("test") { Value = new []{"fileName", "0;1;2", "3", "4", "", "", "", "true"} }; var serializer = new XmlSerializer(param.GetType()); var writer = new StringWriter(); serializer.Serialize(writer, param); var reader = new StringReader(writer.ToString()); var param2 = (PerseusLoadMatrixParam) serializer.Deserialize(reader); Assert.AreEqual("fileName", param2.Filename); Assert.IsTrue(param.MainColumnIndices.SequenceEqual(param2.MainColumnIndices)); }
public void LoadData(IMatrixData mdata, Parameters parameters, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { PerseusLoadMatrixParam par = (PerseusLoadMatrixParam)parameters.GetParam("File"); string filename = par.Filename; if (string.IsNullOrEmpty(filename)) { processInfo.ErrString = "Please specify a filename"; return; } PerseusUtils.ReadMatrixFromFile(mdata, processInfo, filename, par.MainColumnIndices, par.NumericalColumnIndices, par.CategoryColumnIndices, par.TextColumnIndices, par.MultiNumericalColumnIndices, par.MainFilterParameters, par.NumericalFilterParameters, par.ShortenExpressionColumnNames); }
public void LoadData(IMatrixData mdata, Parameters parameters, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { PerseusLoadMatrixParam par = (PerseusLoadMatrixParam)parameters.GetParam("File"); string filename = par.Filename; if (string.IsNullOrEmpty(filename)) { processInfo.ErrString = "Please specify a filename"; return; } if (!File.Exists(filename)) { processInfo.ErrString = "File '" + filename + "' does not exist."; return; } string ftl = filename.ToLower(); bool csv = ftl.EndsWith(".csv") || ftl.EndsWith(".csv.gz"); char separator = csv ? ',' : '\t'; string[] colNames; Dictionary <string, string[]> annotationRows = new Dictionary <string, string[]>(); try{ colNames = TabSep.GetColumnNames(filename, PerseusUtils.commentPrefix, PerseusUtils.commentPrefixExceptions, annotationRows, separator); } catch (Exception) { processInfo.ErrString = "Could not open the file '" + filename + "'. It is probably opened in another program."; return; } string origin = filename; int[] eInds = par.MainColumnIndices; int[] nInds = par.NumericalColumnIndices; int[] cInds = par.CategoryColumnIndices; int[] tInds = par.TextColumnIndices; int[] mInds = par.MultiNumericalColumnIndices; List <Tuple <Relation[], int[], bool> > filters = new List <Tuple <Relation[], int[], bool> >(); string errString; foreach (Parameters p in par.MainFilterParameters) { PerseusUtils.AddFilter(filters, p, eInds, out errString); if (errString != null) { processInfo.ErrString = errString; return; } } foreach (Parameters p in par.NumericalFilterParameters) { PerseusUtils.AddFilter(filters, p, nInds, out errString); if (errString != null) { processInfo.ErrString = errString; return; } } int nrows = GetRowCount(filename, eInds, filters, separator); StreamReader reader = FileUtils.GetReader(filename); StreamReader auxReader = FileUtils.GetReader(filename); PerseusUtils.LoadMatrixData(annotationRows, eInds, cInds, nInds, tInds, mInds, processInfo, colNames, mdata, reader, auxReader, nrows, origin, separator, par.ShortenExpressionColumnNames, filters); reader.Close(); auxReader.Close(); GC.Collect(); }