Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }