internal info_blast_pssm_entry(info_blast_pssm_entry pssm_entry) { const string module_name = nameof(pssm_entry); const string method_name = nameof(pssm_entry); if (pssm_entry == null) { throw new ArgumentNullException(nameof(pssm_entry)); } this.matrix_column_index = pssm_entry.matrix_column_index; this.matrix_row_index = pssm_entry.matrix_row_index; this.position_aa = pssm_entry.position_aa; this.score = pssm_entry.score; this.query_sequence_aa = pssm_entry.query_sequence_aa; this.query_sequence_aa_pos = pssm_entry.query_sequence_aa_pos; }
internal static List <info_blast_pssm_entry> load_psi_blast_pssm(string pssm_filename, bool normalise_pssm = false) { const string module_name = nameof(info_blast_pssm); const string method_name = nameof(load_psi_blast_pssm); var pssm = new List <info_blast_pssm_entry>(); if (!File.Exists(pssm_filename) || new FileInfo(pssm_filename).Length == 0) { return(new List <info_blast_pssm_entry>()); } var line_list = io_proxy.ReadAllLines(pssm_filename, module_name, method_name).Skip(2).ToList(); var pssm_end_index = line_list.IndexOf(/*program.string_debug*/ ($@"")); if (pssm_end_index > -1) { line_list = line_list.GetRange(0, pssm_end_index); } line_list[0] = /*program.string_debug*/ ($@"ID AA {line_list[0]} W1 W2"); //lineList = lineList.Skip(1).ToList(); var line_list_split = line_list.Select(a => a.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList()).ToList(); line_list_split = line_list_split.Select(a => a.Take(22).ToList()).ToList(); for (var row = 1; row < line_list_split.Count; row++) { for (var col = 2; col < line_list_split[row].Count; col++) { if (!double.TryParse(line_list_split[row][col], out var score)) { score = 0; } var col_aa_provided = line_list_split[0][col][0]; var row_aa_provided = line_list_split[row][1][0]; var row_index_provided = int.Parse(line_list_split[row][0], NumberStyles.Integer, NumberFormatInfo.InvariantInfo); var e = new info_blast_pssm_entry() { query_sequence_aa_pos = row_index_provided, query_sequence_aa = row_aa_provided, matrix_row_index = row - 1, matrix_column_index = col - 2, position_aa = col_aa_provided, score = score }; pssm.Add(e); } } if (normalise_pssm) { pssm = dimorphics_dataset.info_blast_pssm.normalise_pssm(pssm); } return(pssm); }