/// <summary>Will add a DatasetTableRow from db to the given Experiment</summary> /// <param name="experiment">Experiment to have its GSMs property updated</param> public static void AddDatasetTableRowToExperimentFromDb(Experiment experiment, SQLiteDataReader reader) { DatasetTableRow dtr = new DatasetTableRow(reader["id_ref"].ToString(), reader["identifier"].ToString(), reader["value"].ToString()); dtr.Id = Convert.ToInt32(reader["id"].ToString()); dtr.ExperimentId = reader["experiment_id"].ToString(); experiment.DatasetTable.Add(dtr); }
/// <summary>Sets an Experiment property from given data</summary> /// <remarks>Method will figure out which property exactly to update</remarks> /// <param name="experiment">Experiment to be updated</param> /// <param name="lineFromCsvFile">Data from CSV containing the value to be set</param> public static void SetExperimentPropertyFromCsvLine(Experiment experiment, string lineFromCsvFile) { string[] data; if (lineFromCsvFile.Contains("=")) { data = lineFromCsvFile.Split('='); data = Normalise(data); switch (data[0]) { case "^DATABASE": experiment.Database = data[1]; break; case "!Database_name": experiment.DatabaseName = data[1]; break; case "!Database_institute": experiment.DatabaseInstitute = data[1]; break; case "!Database_web_link": experiment.DatabaseWebLink = data[1]; break; case "!Database_email": experiment.DatabaseEmail = data[1]; break; case "!Database_ref": experiment.DatabaseRef = data[1]; break; case "^DATASET": experiment.Dataset = RemoveCommas(data[1]); break; case "!dataset_title": experiment.DatasetTitle = data[1]; break; case "!dataset_description": experiment.DatasetDescription = data[1]; break; case "!dataset_type": experiment.DatasetType = data[1]; break; case "!dataset_pubmed_id": experiment.DatasetPubmedId = data[1]; break; case "!dataset_platform": experiment.DatasetPlatform = data[1]; break; case "!dataset_platform_organism": experiment.DatasetPlatformOrganism = data[1]; break; case "!dataset_platform_technology_type": experiment.DatasetPlatformTechnologyType = data[1]; break; case "!dataset_feature_count": experiment.DatasetFeatureCount = data[1]; break; case "!dataset_sample_organism": experiment.DatasetSampleOrganism = data[1]; break; case "!dataset_sample_type": experiment.DatasetSampleType = data[1]; break; case "!dataset_reference_series": experiment.DatasetReferenceSeries = data[1]; break; case "!dataset_update_date": experiment.DatasetUpdateDate = data[1]; break; } if (data[0].StartsWith("#GSM")) { ExperimentGSM gsm = new ExperimentGSM(data[0], data[1]); experiment.GSMs.Add(gsm); } } else { lineFromCsvFile = FixInvalidDatasetTableIdentifiers(lineFromCsvFile); data = lineFromCsvFile.Split(','); if (data[0].EndsWith("_at")) { StringBuilder datasetValue = new StringBuilder(); for (int i = 2; i < data.Length; i++) { try { datasetValue.Append(data[i]); datasetValue.Append(";"); } catch (ArgumentOutOfRangeException) { MessageBox.Show("Dataset table rows cannot contain double quotes and should be comma-separated. Row ID_REF: " + data[0], "Dataset table invalid row", MessageBoxButtons.OK, MessageBoxIcon.Error); } } datasetValue.Remove(datasetValue.Length - 1, 1); // remove last ';' separator DatasetTableRow datasetRow = new DatasetTableRow(data[0], data[1], datasetValue.ToString()); experiment.DatasetTable.Add(datasetRow); } } }