Blastpgp
Blastpgp performs gapped blastp searches and can be used to
perform iterative searches in psi-blast and phi-blast mode. See
the PSI-Blast and PHI-BLAST sections (below) for a description
of this binary. The options may be obtained by executing 'blastpgp
-'.
-T Produce HTML output [T/F]
default = F
-Q Output File for PSI-BLAST Matrix in ASCII [File Out] Optional
PSI-Blast
The blastpgp program can do an iterative search in which sequences
found in one round of searching are used to build a score model
for the next round of searching. In this usage, the program is
called Position-Specific Iterated BLAST, or PSI-BLAST. As explained
in the accompanying paper, the BLAST algorithm is not tied to
a specific score matrix. Traditionally, it has been implemented
using an AxA substitution matrix where A is the alphabet size.
PSI-BLAST instead uses a QxA matrix, where Q is the length of
the query sequence; at each position the cost of a letter depends
on the position w.r.t. the query and the letter in the subject
sequence.
The position-specific matrix for round i+1 is built from a constrained
multiple alignment among the query and the sequences found with
sufficiently low e-value in round i. The top part of the output
for each round distinguishes the sequences into: sequences found
previously and used in the score model, and sequences not used
in the score model. The output currently includes lots of diagnostics
requested by users at NCBI. To skip quickly from the output of
one round to the next, search for the string "producing",
which is part of the header for each round and likely does not
appear elsewhere in the output. PSI-BLAST "converges" and
stops if all sequences found at round i+1 below the e-value threshold
were already in the model at the beginning of the round.
There are several blastpgp parameters specifically for PSI-BLAST:
-j is the maximum number of rounds (default 1; i.e., regular BLAST)
-h is the e-value threshold for including sequences in the
score matrix model (default 0.001)
-c is the "constant" used in the pseudocount formula specified in the
paper (default 10)
The -C and -R flags provide a "checkpointing" facility
whereby a score model can be stored and later reused.
-C stores the query and frequency count ratio matrix in a
file
-R restarts from a file stored previously.
When using -R, it is required that the query specified on the
command line match exactly the query in the restart file.
Two additional arguments specify the format of the input/output
checkpoint file:
-q Format of the input checkpoint file:
0: the default: a byte-encoded (not human readable) format
1: a text ASN.1 scoremat object
2: a binary ASN.1 scoremat object
-u Format of the output checkpoint file:
0: the default: a byte-encoded (not human readable) format
1: a text ASN.1 scoremat object
2: a binary ASN.1 scoremat object
Users who also develop their own sequence analysis software
may wish to develop their own scoring systems. For this purpose
the code in posit.c that writes out the checkpoint can be easily
adapated to write out scoring systems derived by other algorithms
in such a way that PSI-BLAST can read the files in later. The
checkpoint structure is general in the sense that it can handle
any position-specific matrix that fits in the Karlin-Altschul
statistical framework for BLAST scoring.
The -B flag provides a way to jump start PSI-BLAST from a master-slave
multiple alignment computed outside PSI-BLAST. The multiple alignment
must include the query sequence as one of the sequences, but
it need not be the first sequence. The multiple alignment must
be specified in a format that is derived from Clustal, but without
some headers and trailers. See example below. The rules are also
described by the following words. Suppose the multiple alignments
has N sequences. It may be presented in 1 or more blocks, where
each block presents a range of columns from the multiple alignment.
E.g., the first block might have columns 1-60, the second block
might have columns 61-95, the third block might have columns
96-128. Each block should have N rows, 1 row per sequence. The
sequences should be in the same order in every block. Blocks
are separated by 1 or more blank lines. Within a block there
are no blank lines, and each line consists of 1 sequence identifier
followed by some white space followed by characters (and gaps)
for that sequence in the multiple alignment. In each column,
all letters must be in upper case, or all letters must be in
lower case. Upper case means that this column is to be given
position-specific scores. Lower-case means to use the underlying
matrix (specified by -M) for this column; e.g., if the query
sequence has an 'l' residue in the column, then the standard
scores for matching an L are used in the column.
A sample usage would be:
blastpgp -i seq1 -B align1 -j 2 -d nr
where seq1 is the query
align1 is the alignment file
-j 2 indicates to do 2 rounds
-d nr indicates to use the nr database
The example files
seq1
align1
copied below were kindly supplied by L. Aravind from a paper
he and Chris Ponting published in Protein Science:
Aravind L, Ponting CP, Homologues of 26S proteasome subunits
are regulators of transcription and translation, Protein Science
7(1998) 1250-1254.
L. Aravind (aravind@ncbi.nlm.nih.gov) was the first user and
helped define how -B should work. Y. Wolf (wolf@ncbi.nlm.nih.gov)
helped design a more flexible input format for the alignments.
If you like how -B works, let them know. If you do not like how
-B works, complain to A. Schaffer(schaffer@helix.nih.gov) who
did the implementation.
seq1
----
> 26SPS9_Hs
IHAAEEKDWKTAYSYFYEAFEGYDSIDSPKAITSLKYMLLCKIMLNTPEDVQALVSGKLALRYAGRQTEA
LKCVAQASKNRSLADFEKALTDYRAELRDDPIISTHLAKLYDNLLEQNLIRVIEPFSRVQIEHISSLIKL
SKADVERKLSQMILDKKFHGILDQGEGVLIIFDEPP
align1
------
26SPS9_Hs IHAAEEKDWKTAYSYFYEAFEGYdsidspkaitslkymllckimlntpedvqalvsgk
lalryagrqtealkcvaqasknr
F57B9_Ce LHAADEKDFKTAFSYFYEAFEGYdsvdekvsaltalkymllckvmldlpdevnsllsa
klalkyngsdldamkaiaaaaqk
YDL097c_Sc ILHCEDKDYKTAFSYFFESFESYhnltthnsyekacqvlkymllskimlnliddvkni
lnakytketyqsrgidamkavae
YMJ5_Ce LYSAEERDYKTSFSYFYEAFEGFasigdkinatsalkymilckimlneteqlagllaa
keivayqkspriiairsmadafr
FUS6_ARATH KNYIRTRDYCTTTKHIIHMCMNAilvsiemgqfthvtsyvnkaeqnpetlepmvnakl
rcasglahlelkkyklaarkfld
COS41.8_Ci SLDYKLKTYLTIARLYLEDEDPVqaemyinrasllqnetadeqlqihykvcyarvldy
rrkfleaaqrynelsyksaihet
644879 KCYSRARDYCTSAKHVINMCLNVikvsvylqnwshvlsyvskaestpeiaeqrgerds
qtqailtklkcaaglaelaarky
YPR108w_Sc IHCLAVRNFKEAAKLLVDSLATFtsieltsyesiatyasvtglftlertdlkskvids
pellslisttaalqsissltisl
eif-3p110_Hs SKAMKMGDWKTCHSFIINEKMNGkvw--------------------------------
T23D8.4_Ce SKAMLNGDWKKCQDYIVNDKMNQkvw--------------------------------
YD95_Sp IYLMSIRNFSGAADLLLDCMSTFsstellpyydvvryavisgaisldrvdvktkivds
pevlavlpqnesmssleacinsl
KIAA0107_Hs LYCVAIRDFKQAAELFLDTVSTFtsyelmdyktfvtytvyvsmialerpdlrekvikg
aeilevlhslpavrqylfslyec
F49C12.8_Hs LYRMSVRDFAGAADLFLEAVPTFgsyelmtyenlilytvitttfaldrpdlrtkvirc
nevqeqltggglngtlipvreyl
Int-6_Mm KFQYECGNYSGAAEYLYFFRVLVpatdrnalsslwgklaseilmqnwdaamedltrlk
etidnnsvssplqslqqrtwlih
26SPS9_Hs sladfekaltdy----------------------------------------------
F57B9_Ce rslkdfqvafgsf---------------------------------------------
YDL097c_Sc aynnrslldfntalkqy-----------------------------------------
YMJ5_Ce krslkdfvkalaeh--------------------------------------------
FUS6_ARATH vnpelgnsyneviapqdiatygglcalasfdrselkqkvidninfrnflelvpdvrel
indfyssryascleylasl------------------
COS41.8_Ci eqtkalekalncailapagqqrsrmlatlfkdercqllpsfgilekmfldriiksdem
eefar--------------------------------
644879 kqaakclllasfdhcdfpellspsnvaiygglcalatfdrqelqrnvissssfklfle
lepqvrdiifkfyeskyasclkmldem----------
YPR108w_Sc yasdyasyfpyllety------------------------------------------
eif-3p110_Hs ----------------------------------------------------------
T23D8.4_Ce ----------------------------------------------------------
YD95_Sp ylcdysgffrtladve------------------------------------------
KIAA0107_Hs rysvffqslavv----------------------------------------------
F49C12.8_Hs esyydchydrffiqlaale---------------------------------------
Int-6_Mm wslfvffnhpkgrdniidlflyqpqylnaiqtmcphilrylttavitnkdvrkrrqvl
kdlvkviqqesytykdpitefveclyvnfdfdgaqkk
26SPS9_Hs ----RAELRDDPIISTHLAKLYDNLLEQNLIRVIEPFSRVQIEHISSLIKLSKADVER
KLSQMILDKKFHGILDQGEGVLIIFDEPP
F57B9_Ce ----PQELQMDPVVRKHFHSLSERMLEKDLCRIIEPYSFVQIEHVAQQIGIDRSKVEK
KLSQMILDQKLSGSLDQGEGMLIVFEIAV
YDL097c_Sc ----EKELMGDELTRSHFNALYDTLLESNLCKIIEPFECVEISHISKIIGLDTQQVEG
KLSQMILDKIFYGVLDQGNGWLYVYETPN
YMJ5_Ce ----KIELVEDKVVAVHSQNLERNMLEKEISRVIEPYSEIELSYIARVIGMTVPPVER
AIARMILDKKLMGSIDQHGDTVVVYPKAD
FUS6_ARATH ----KSNLLLDIHLHDHVDTLYDQIRKKALIQYTLPFVSVDLSRMADAFKTSVSGLEK
ELEALITDNQIQARIDSHNKILYARHADQ
COS41.8_Ci ----QLMPHQKAITADGSNILHRAVTEHNLLSASKLYNNIRFTELGALLEIPHQMAEK
VASQMICESRMKGHIDQIDGIVFFERRET
644879 ----KDNLLLDMYLAPHVRTLYTQIRNRALIQYFSPYVSADMHRMAAAFNTTVAALED
ELTQLILEGLISARVDSHSKILYARDVDQ
YPR108w_Sc ----ANVLIPCKYLNRHADFFVREMRRKVYAQLLESYKTLSLKSMASAFGVSVAFLDN
DLGKFIPNKQLNCVIDRVNGIVETNRPDN
eif-3p110_Hs ----DLFPEADKVRTMLVRKIQEESLRTYLFTYSSVYDSISMETLSDMFELDLPTVHS
IISKMIINEELMASLDQPTQTVVMHRTEP
T23D8.4_Ce ----NLFHNAETVKGMVVRRIQEESLRTYLLTYSTVYATVSLKKLADLFELSKKDVHS
IISKMIIQEELSATLDEPTDCLIMHRVEP
YD95_Sp ----VNHLKCDQFLVAHYRYYVREMRRRAYAQLLESYRALSIDSMAASFGVSVDYIDR
DLASFIPDNKLNCVIDRVNGVVFTNRPDE
KIAA0107_Hs ----EQEMKKDWLFAPHYRYYVREMRIHAYSQLLESYRSLTLGYMAEAFGVGVEFIDQ
ELSRFIAAGRLHCKIDKVNEIVETNRPDS
F49C12.8_Hs ----SERFKFDRYLSPHFNYYSRGMRHRAYEQFLTPYKTVRIDMMAKDFGVSRAFIDR
ELHRLIATGQLQCRIDAVNGVIEVNHRDS
Int-6_Mm lrecESVLVNDFFLVACLEDFIENARLFIFETFCRIHQCISINMLADKLNMTPEEAER
WIVNLIRNARLDAKIDSKLGHVVMGNNAV
PHI-Blast
PHI-BLAST (Pattern-Hit Initiated BLAST) is a search program
that combines matching of regular expressions with local alignments
surrounding the match. The most important features of the program
have been incorporated into the BLAST software framework partly
for user convenience and partly so that PHI-BLAST may be combined
seamlessly with PSI-BLAST. Other features that do not fit into
the BLAST framework will be released later as a separate program
and/or separate Web page query options.
One very restrictive way to identify protein motifs is by regular
expressions that must contain each instance of the motif. The
PROSITE database is a compilation of restricted regular expressions
that describe protein motifs. Given a protein sequence S and
a regular expression pattern P occurring in S, PHI-BLAST helps
answer the question: What other protein sequences both contain
an occurrence of P and are homologous to S in the vicinity of
the pattern occurrences? PHI-BLAST may be preferable to just
searching for pattern occurrences because it filters out those
cases where the pattern occurrence is probably random and not
indicative of homology. PHI-BLAST may be preferable to other
flavors of BLAST because it is faster and because it allows the
user to express a rigid pattern occurrence requirement.
The pattern search methods in PHI-BLAST are based on the algorithms
in:
R. Baeza-Yates and G. Gonnet, Communications of the ACM 35(1992),
pp. 74-82. S. Wu and U. Manber, Communications of the ACM 35(1992),
pp. 83-91.
The calculation of local alignments is done using a method very
similar to (and much of the same code as) gapped BLAST. However,
the method of evaluating statistical significance is different,
and is described below.
In the stand-alone mode the typical PHI-BLAST usage looks like:
blastpgp -i -k -p patseedp
where -i is followed by the file containing the query in FASTA
format where -k is followed by the file containing the pattern
in a syntax given below and "patseedp" indicates the
mode of usage, not representing any file.
The syntax for the query sequence is FASTA format as for all
other BLAST queries. The syntax for patterns follows the rules
of PROSITE and is documented in detail below.
The specified pattern is not required to be in the PROSITE list.
Most of the other BLAST flags can be used with PHI-BLAST. One
important exception is that PHI-BLAST requires gapped alignments
(i.e. forbids -g F in the flags) because ungapped alignments
do not make sense for almost all patterns in PROSITE.
There is a second mode of PHI-BLAST usage that is important
when the specified pattern occurs more than 1 time in the query.
In this case, the user may be interested in restricting the search
for local alignments to a subset of the pattern occurrences.
This can be done with a search that looks like:
blastpgp -i -k -p seedp
in which case the use of the "seedp" option requires
the user to specify the location(s) of the interesting pattern
occurrence(s) in the pattern file. The syntax for how to specify
pattern occurrences is below. When there are multiple pattern
occurrences in the query it may be important to decide how many
are of interest because the E-value for matches is effectively
multiplied by the number of interesting pattern occurrences.
The PHI-BLAST Web page supports only the "patseedp" option.
PHI-BLAST is integrated with PSI-BLAST. In the command-line
mode, PSI-BLAST can be invoked by using the -j option, as usual.
When this is done as:
blastpgp -i -k -p patseedp -j
then the first round of searching uses PHI-BLAST and all subsequent
rounds use PSI-BLAST.
In the Web page setting, the user must explicitly invoke one
round at a time, and the PHI-BLAST Web page provides the option
to initiate a PSI-BLAST round with the PHI-BLAST results. To
describe a combined usage, use the term "PHI-PSI-BLAST"
(Pattern-Hit Initiated, Position-Specific Iterated BLAST).
Determining statistical significance.
When a query sequence Q matches a database sequence D in PHI-BLAST,
it is useful to subdivide Q and D into 3 disjoint pieces
Qleft Qpattern Qright
Dleft Dpattern Dright
The substrings Qpattern and Dpattern contain the pattern specified
in the pattern file. The pieces Qpattern and Dpattern are aligned
and that alignment is displayed as part of the PHI-BLAST output,
but the score for that alignment is mostly ignored.
The "reduced" score r of an alignment is the sum of
the scores obtained by aligning Qleft with Dleft and by aligning
Qright with Dright.
The expected number of alignments with a reduced score >= x
is given by:
CN(Lambda*x + 1)e^(-Lambda *x)
where:
C and Lambda are "constants" depending on the score matrix and the
gap costs.
N is (number of occurrences of pattern in database) * (number of
occurrences of pattern in Q)
e is the base of the natural logarithm.
It is important to understand that this method of computing
the statistical significance of a PHI-BLAST alignment is mathematically
different from the method used for BLAST and PSI-BLAST alignments.
However, both methods provide E-values, so they the E_values
are displayed with a similar output syntax.
Rules for pattern syntax for PHI-BLAST.
The syntax for patterns in PHI-BLAST follows the conventions
of PROSITE. When using the stand-alone program, it is permissible
to have multiple patterns in a file separated by a blank line
between patterns. When using the Web-page only one pattern is
allowed per query.
Valid protein characters for PHI-BLAST patterns:
ABCDEFGHIKLMNPQRSTVWXYZU
Valid DNA characters for PHI-BLAST patterns:
ACGT
Other useful delimiters:
[ ] means any one of the characters enclosed in the brackets
e.g., [LFYT] means one occurrence of L or F or Y or T
- means nothing (this is a spacer character used by PROSITE)
x with nothing following means any residue
x(5) means 5 positions in which any residue is allowed (and
similarly for any other single number in parentheses after x)
x(2,4) means 2 to 4 positions where any residue is allowed,
and similarly for any other two numbers separated by a comma;
the first number should be < the second number.
> can occur only at the end of a pattern and means nothing
it may occur before a period
(another spacer used by PROSITE)
. may be used at the end of the pattern and means nothing
When using the stand-alone program, the pattern should
be in a file, with the first line starting:
ID
followed by 2 spaces and a text string giving the pattern a name.
There should also be a line starting
PA
followed by 2 spaces followed by the pattern description.
All other PROSITE codes in the first two columns are allowed,
but only the HI code, described below is relevant to PHI-BLAST.
Here is an example from PROSITE.
ID CNMP_BINDING_2; PATTERN.
AC PS00889;
DT OCT-1993 (CREATED); OCT-1993 (DATA UPDATE); NOV-1995 (INFO UPDATE).
DE Cyclic nucleotide-binding domain signature 2.
PA [LIVMF]-G-E-x-[GAS]-[LIVM]-x(5,11)-R-[STAQ]-A-x-[LIVMA]-x-[STACV].
NR /RELEASE=32,49340;
NR /TOTAL=57(36); /POSITIVE=57(36); /UNKNOWN=0(0); /FALSE_POS=0(0);
NR /FALSE_NEG=1; /PARTIAL=1;
CC /TAXO-RANGE=??EP?; /MAX-REPEAT=2;
The line starting
ID
gives the pattern a name.
The lines starting
AC, DT, DE, NR, NR, CC
are relevant to PROSITE users, but irrelevant to PHI-BLAST.
These lines are tolerated, but ignored by PHI-BLAST.
The line starting
PA
describes the pattern as:
one of LIVMF
followed by
G
followed by
E
followed by
any single character
followed by
one of GAS
followed by
one of LIVM
followed by
any 5 to 11 characters
followed by
R
followed by
one of STAQ
followed by
A
followed by
any single character
followed by
one of LIVMA
followed by
any single character
followed by
one of STACV
In this case the pattern ends with a period.
It can end with nothing after the last specifying symbol
or any number of > signs or periods or combination thereof.
Here is another example, illustrating the use of an HI line.
ID ER_TARGET; PATTERN.
PA [KRHQSA]-[DENQ]-E-L>.
HI (19 22)
HI (201 204)
In this example, the HI lines specify that the pattern
occurs twice, once from positions 19 through 22 in the
sequence and once from positions 201 through 204 in the
sequence.
These specifications are relevant when stand-alone PHI-BLAST is
used with the
seedp
option, in which the interesting occurrences of the pattern
in the sequence are specified. In this case the
HI lines specify which occurrence(s) of the pattern
should be used to find good alignments.
In general, the seedp option is more useful than the
standard patternp option ONLY when the
pattern occurs K > 1 times in the sequence AND
the user is interested in matching to J < K of those
occurrences.
Then using the HI lines enables the user to specify which
occurrences are of interest.
Additional functionality related to PHI-BLAST.
PHI-BLAST takes as input both a sequence and a query containing
that sequence and searches a sequence database for other sequences
containing the same pattern and having a good alignment. One
may be interested in asking two related, simpler questions:
1. Given a sequence and a database of patterns, which patterns
occur in the sequence and where?
2. Given a pattern and a sequence database, which sequences
contain the pattern and where?
These queries can be answered wih software closely related to
PHI-BLAST, but they do not fit into the output framework of BLAST
because the answers are simple lists without alignments and with
no notion of statistical significance.
The NCBI toolbox includes another program, currently called
seedtop to answer the two queries above.
Query 1 can be asked with:
seedtop -i -k -p patmatchp
Query 2 can be asked with:
seedtop -d -k -p patternp
The -k argument is used similarly in all queries and the file
format is always the same. The standard pattern database is PROSITE,
but others (or a subset) can be used. There are plans afoot to
offer the patmatchp query (number 1) on the PHI-BLAST web page
or in its vicinity, but this would be restricted to having PROSITE
as the pattern database.
Documentation for PSI-TBLASTN
PSI-BLASTN is a variant of blastall that searches a protein
query sequence against a nucleotide sequence database using a
position specific matrix created by PSI-BLAST. The nucleotide
sequence database is dynamically translated in all reading frames
during PSI-TBLASTN search. Using a position specific matrix may
enable finding more distantly related sequences.
Programs:
blastpgp [takes a protein query and perform PSI-BLAST search to
creates a position specific matrix using a protein
database]
blastall [reads position specific matrix and performs PSI-TBLASTN
search]
Usage:
A user would typically run blastpgp to create and save a position
specific matrix, followed by a run of blastall for PSI-TBLASTN
search.
blastpgp must be executed with -C option followed by a file
name to save position specific score matrix.
blastall with "-p psitblastn" option executes PSI-TBLASTSN
search, and -R option followed by a file name specifying the
file that contains position specific score matrix. All other
options that apply when using "blastall -p tblastn ..." also
apply when using "blastall -p psitblastn ...", but
there are some restrictions to parameters:
1) The query must be the same as the one used in blastpgp for
creating a position specific matrix.
2) By default, blastpgp has filtering off (-F F) and blastall
has filtering on (-F T). To ensure consistent usage of the blastpgp/psitblastn
combination, the -F option should be explicitly set in one or
the other run.
Example:
One may run PSI-BLST to create and save a position specific
score matrix as follows:
blastpgp -d nr -i ff.chd -j 2 -C ff.chd.ckp
Position specific score matrix is saved in ff.chd.ckp. Then,
using this matrix, one may run PSI-TBLASTN search:
blastall -i ff.chd -d yeast -p psitblastn -R ff.chd.ckp
Note that this allows the score matrix to be constructed using
one database (nr in the example) and then used to search a second
database (yeast in the example). Even if the two database names
are the same, blastpgp uses the protein version while "blastall
-p psitblastn" uses the DNA version.