## environ.make_pssmdb() — Create a database of PSSMs given a list of profiles

`make_pssmdb(profile_list_file, pssmdb_name, profile_format='TEXT', rr_file='$(LIB)/as1.sim.mat', matrix_offset=0.0, matrix_scaling_factor=0.0069, pssm_weights_type='HH1')`

> This command takes a list of profiles, specified in profile_list_file, to calculate their Position Specific Scoring Matrices (PSSM) and create a database of these PSSMs for use in profile.scan().

> The profiles listed in profile_list_file should be in a format that is understood by profile.read(). For instance, like those created by profile.build() or alignment.to_profile. See documentation under profile.read() for help on profile_format.

> rr_file is the residue-residue substitution matrix to use when calculating the position-specific scoring matrix (PSSM). The current implementation is optimized only for the BLOSUM62 matrix.

> matrix_offset is the value by which the scoring matrix is offset during dynamic programing. For the BLOSUM62 matrix use a value of -450.

> pssmdb_name is the name for the output PSSM database.

Example: examples/commands/ppscan.py

      # Example for: profile.scan()

      from modeller import *

      env = environ()

      # First create a database of PSSMs
      env.make_pssmdb(profile_list_file = 'profiles.list',
                      matrix_offset     = -450,
                      rr_file           = '${LIB}/blosum62.sim.mat',
                      pssmdb_name       = 'profiles.pssm',
                      profile_format    = 'TEXT',
                      pssm_weights_type = 'HH1')

      # Read in the target profile
      prf = profile(env, file='T3lzt-uniprot90.prf', profile_format='TEXT')

      # Read the PSSM database
      psm = pssmdb(env, pssmdb_name = 'profiles.pssm', pssmdb_format = 'text')

      # Scan against all profiles in the 'profiles.list' file
      # The score_statistics flag is set to false since there are not
      # enough database profiles to calculate statistics.
      prf.scan(profile_list_file = 'profiles.list',
               psm               = psm,
               matrix_offset     = -450,
               ccmatrix_offset   = -100,
               rr_file           = '${LIB}/blosum62.sim.mat',
               gap_penalties_1d  = (-700, -70),
               score_statistics  = False,
               output_alignments = True,
               output_score_file = None,
               profile_format    = 'TEXT',
               max_aln_evalue    = 1,
               aln_base_filename = 'T3lzt-ppscan',
               pssm_weights_type = 'HH1',
               summary_file      = 'T3lzt-ppscan.sum')