public void TestNetworkFromMatrix()
        {
            if (!PluginInterop.Python.Utils.TryFindPythonExecutable(out string _))
            {
                Assert.Inconclusive("Python not installed");
            }
            Assert.Inconclusive("Cannot be tested without dependency on PerseusLibS");
            var codeString = Properties.Resources.matrix_to_network;
            var codeFile   = Path.GetTempFileName();

            File.WriteAllText(codeFile, Encoding.UTF8.GetString(codeString));
            var processing = new PluginInterop.Python.NetworkFromMatrix();
            var mdata      = PerseusFactory.CreateMatrixData(new [, ] {
                { 0.0, 1.0 }
            }, new List <string> {
                "col 1", "col 2"
            });
            var errString  = string.Empty;
            var parameters = processing.GetParameters(mdata, ref errString);

            Assert.IsTrue(string.IsNullOrEmpty(errString));
            parameters.GetParam <string>("Script file").Value = codeFile;
            var ndata = PerseusFactoryAnnColumns.CreateNetworkData();

            IData[] suppData = null;
            var     pinfo    = new ProcessInfo(new Settings(), s => { }, i => { }, 1);

            processing.ProcessData(mdata, ndata, parameters, ref suppData, pinfo);
            Assert.IsTrue(string.IsNullOrEmpty(pinfo.ErrString), pinfo.ErrString);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Read supplementary files according to file paths and data types.
        /// </summary>
        public static IData[] ReadSupplementaryData(string[] suppFiles, DataType[] supplDataTypes, ProcessInfo processInfo)
        {
            var numSupplTables = suppFiles.Length;

            IData[] supplData = new IData[numSupplTables];
            for (int i = 0; i < numSupplTables; i++)
            {
                switch (supplDataTypes[i])
                {
                case DataType.Matrix:
                    var mdata = PerseusFactory.CreateMatrixData();
                    PerseusUtils.ReadMatrixFromFile(mdata, processInfo, suppFiles[i], '\t');
                    supplData[i] = mdata;
                    break;

                case DataType.Network:
                    var ndata = PerseusFactoryAnnColumns.CreateNetworkData();
                    FolderFormat.Read(ndata, suppFiles[i], processInfo);
                    supplData[i] = ndata;
                    break;

                default:
                    throw new NotImplementedException($"Data type {supplDataTypes[i]} not supported!");
                }
            }
            return(supplData);
        }