.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Blastall 3pm" .TH Blastall 3pm "2020-11-06" "perl v5.30.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" NHGRI::Blastall \- Perl extension for running and parsing NCBI's BLAST 2.x .SH "SYNOPSIS" .IX Header "SYNOPSIS" .SH "DESCRIPTION" .IX Header "DESCRIPTION" If you have \s-1NCBI\s0's \s-1BLAST2\s0 or WU-BLAST installed locally and your environment is already setup you can use Perl's object-oriented capabilities to run your BLASTs. Also if you have a blastcl3 binary from the toolkit (or binaries from our \s-1FTP\s0 site) you can run \s-1BLAST\s0 over the network. There are also methods to blast single sequences against each other using the bl2seq binaries (also in the toolkit and binaries). You can blast one sequence against a library of sequences using the blast_one_to_many method. You can format databases with formatdb method. You can also have NHGRI::Blastall read existing \s-1BLAST\s0 reports. If you have a database of repetitive \s-1DNA\s0 or other \s-1DNA\s0 you would like to mask out, you can use the mask method to mask the data against these databases. You can then use either the filter or result methods to parse the report and access the various elements of the data. .IP "\s-1RUNNING NEW BLASTS\s0" 4 .IX Item "RUNNING NEW BLASTS" .Vb 10 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& # If you are running NCBI\*(Aqs Local BLAST \& $b\->blastall( p => \*(Aqblastn\*(Aq, \& d => \*(Aqnr\*(Aq, \& i => \*(Aqinfile\*(Aq, \& o => \*(Aqoutfile\*(Aq \& ); \& # If you are running NCBI\*(Aqs blastcl3 network client \& $b\->blastcl3( p => \*(Aqblastn\*(Aq, \& d => \*(Aqnr\*(Aq, \& i => \*(Aqinfile\*(Aq, \& o => \*(Aqoutfile\*(Aq \& ); \& # If you are running WU\-BLAST locally \& $b\->wu_blastall( p => \*(Aqblastn\*(Aq, \& d => \*(Aqnr\*(Aq, \& nogap => \*(Aq!\*(Aq, #use ! for arguments w/o parameter \& i => \*(Aqinfile\*(Aq, \& o => \*(Aqoutfile\*(Aq \& ); \& \& See BLASTALL for more info .Ve .IP "\s-1BLASTING 2 SEQUENCES\s0" 4 .IX Item "BLASTING 2 SEQUENCES" .Vb 6 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->bl2seq(i => \*(Aqseq1\*(Aq, \& j => \*(Aqseq2\*(Aq, \& p => \*(Aqtblastx\*(Aq \& ); \& \& See BL2SEQ for more info .Ve .IP "\s-1BLASTING 1 SEQUENCE AGAINST A FASTA LIBRARY OF SEQUENCES\s0" 4 .IX Item "BLASTING 1 SEQUENCE AGAINST A FASTA LIBRARY OF SEQUENCES" .Vb 7 \& # a library is a FASTA file with multiple FASTA formatted sequences \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->blast_one_to_many(i => \*(Aqseq1\*(Aq, \& d => \*(Aqseq2.lib\*(Aq, \& p => \*(Aqtblastx\*(Aq, \& ); \& \& See BLAST_ONE_TO_MANY for more info .Ve .IP "\s-1INITIALIZING EXISTING BLAST REPORTS\s0" 4 .IX Item "INITIALIZING EXISTING BLAST REPORTS" .Vb 3 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->read_report(\*(Aq/path/to/report\*(Aq); .Ve .IP "\s-1MASKING SEQUENCES\s0" 4 .IX Item "MASKING SEQUENCES" .Vb 7 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $masked_seq = $b\->mask( type => \*(Aqwu_blastall\*(Aq, \& p => \*(Aqblastn\*(Aq, \& d => \*(Aqalu\*(Aq, \& i => \*(Aqinfile\*(Aq \& ); \& \& See MASKING for more info .Ve .IP "\s-1CREATING BLAST INDEXES\s0" 4 .IX Item "CREATING BLAST INDEXES" .Vb 6 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->formatdb( i => \*(Aqest\*(Aq, \& p => \*(AqF\*(Aq, \& o => \*(AqT\*(Aq, \& ); \& \& See FORMATDB for more info .Ve .IP "\s-1PRINTING REPORTS\s0" 4 .IX Item "PRINTING REPORTS" .Vb 3 \& $b\->print_report(); \& # this method only opens the report and prints. It does not print \& # summary reports .Ve .IP "\s-1FILTERING BLAST RESULTS\s0" 4 .IX Item "FILTERING BLAST RESULTS" .Vb 3 \& @hits = $b\->filter( scores => \*(Aq38.2\*(Aq, \& identities => \*(Aq.98\*(Aq \& ); \& \& # returns an array of hash references. \& See HASHREF for more info on manipulating the results. \& See FILTERING for more info on using the filter method .Ve .IP "\s-1GETTING AT ELEMENTS\s0" 4 .IX Item "GETTING AT ELEMENTS" .Vb 2 \& @ids = $b\->result(\*(Aqid\*(Aq); \& @scores = $b\->result(\*(Aqscores\*(Aq,$ids[0]); # second param must be an id \& \& See RESULT for more info on using the result method \& See ELEMENTS for element names .Ve .IP "\s-1GETTING AT ALL THE DATA\s0" 4 .IX Item "GETTING AT ALL THE DATA" .Vb 1 \& @results = $b\->result(); # returns an array of hashes \& \& See HASHREF for information on the array of hashes that is returned. \& See DUMP RESULTS to see how to work with the array of hashes .Ve .IP "\s-1ADJUSTING THE DEFLINE REGEX\s0" 4 .IX Item "ADJUSTING THE DEFLINE REGEX" .Vb 1 \& $b = new NHGRI::Blastall (\-DB_ID_REGEX => \*(Aq[^ ]+\*(Aq); \& \& See DB_ID_REGEX for more info .Ve .SH "BLASTALL" .IX Header "BLASTALL" This method provides a simple object oriented frontend to \s-1BLAST.\s0 This module works with either \s-1NCBI\s0's blastall binary distributed with \&\s-1BLAST 2\s0.x, WU-BLAST or over the web through \s-1NCBI\s0's Web Site. The blastall function accepts as a parameter an anonymous hash with keys that are the command line options (See \s-1BLASTALL OPTIONS\s0) and values which are the corresponding values to those options. You may want to set the \s-1BLASTALL\s0 variable in Blastall.pm to the full path of your `blastall' binary, especially if you will be running scripts as cron jobs or if blastall is not in the system path. .SH "BLASTALL OPTIONS" .IX Header "BLASTALL OPTIONS" For wu_blastall you need to use \s-1NCBI\s0 type switches for the following [C\fB\-i\fR] for infile [C\fB\-o\fR] for outfile [C\fB\-p\fR] for program [C\fB\-d\fR] for database the rest of the parameters \s-1MUST\s0 be the parameters available through WU-BLAST (e.g. \-sump, \-nogap \-compat1.4, etc.) use a `!' to specify that an argument has no parameters. See the example at the top of the manpage. .PP These are the options that \s-1NCBI\s0's blastall and binary accepts and these are the same options that are accepted by the blastall and blastcl3 methods. \&\s-1NOTE:\s0 You must set the proper environmental variables for the blastall method to work (\s-1BLASTDB,BLASTMAT\s0). .IP "\(bu" 4 \&\fBp\fR => Program Name .IP "\(bu" 4 \&\fBd\fR => Database default=nr .IP "\(bu" 4 \&\fBi\fR => QueryFile .IP "\(bu" 4 \&\fBe\fR => Expectation value (E) default=10.0 .IP "\(bu" 4 \&\fBm\fR => alignment view default=0 0 = pairwise, 1 = master-slave showing identities, 2 = master-slave no identities, 3 = flat master-slave, show identities, 4 = flat master-slave, no identities, 5 = master-slave no identities and blunt ends, 6 = flat master-slave, no identities and blunt ends .IP "\(bu" 4 \&\fBo\fR => \s-1BLAST\s0 report Output File default=stdout .IP "\(bu" 4 \&\fBF\fR => Filter query sequence default=T (\s-1DUST\s0 with blastn, \s-1SEG\s0 with others) .IP "\(bu" 4 \&\fBG\fR => Cost to open a gap default=0 (zero invokes default behavior) .IP "\(bu" 4 \&\fBE\fR => Cost to extend a gap default=0 (zero invokes default behavior) .IP "\(bu" 4 \&\fBX\fR => X dropoff value for gapped alignment (in bits) default=0 (zero invokes default behavior) .IP "\(bu" 4 \&\fBI\fR => Show \s-1GI\s0's in deflines default=F .IP "\(bu" 4 \&\fBq\fR => Penalty for a nucleotide mismatch (blastn only) default=\-3 .IP "\(bu" 4 \&\fBr\fR => Reward for a nucleotide match (blastn only) default=1 .IP "\(bu" 4 \&\fBv\fR => Number of one-line descriptions (V) default=500 .IP "\(bu" 4 \&\fBb\fR => Number of alignments to show (B) default=250 .IP "\(bu" 4 \&\fBf\fR => Threshold for extending hits, default if zero default=0 .IP "\(bu" 4 \&\fBg\fR => Perform gapped alignment (\s-1NA\s0 with tblastx) default=T .IP "\(bu" 4 \&\fBQ\fR => Query Genetic code to use default=1 .IP "\(bu" 4 \&\fBD\fR => \s-1DB\s0 Genetic code (for tblast[nx] only) default=1 .IP "\(bu" 4 \&\fBa\fR => Number of processors to use default=1 .IP "\(bu" 4 \&\fBO\fR => SeqAlign file Optional .IP "\(bu" 4 \&\fBJ\fR => Believe the query defline default=F .IP "\(bu" 4 \&\fBM\fR => Matrix default=BLOSUM62 .IP "\(bu" 4 \&\fBW\fR => Word size, default if zero default=0 .IP "\(bu" 4 \&\fBz\fR => Effective length of the database default=0 (use zero for the real size) .IP "\(bu" 4 \&\fBK\fR => Number of best hits from a region to keep default=100 .IP "\(bu" 4 \&\fBL\fR => Length of region used to judge hits default=20 .IP "\(bu" 4 \&\fBY\fR => Effective length of the search space default=0 (use zero for the real size) .IP "\(bu" 4 \&\fBS\fR => Query strands to search against database default=3 (for blast[nx], and tblastx). 3 is both, 1 is top, 2 is bottom .IP "\(bu" 4 \&\fBT\fR => Produce \s-1HTML\s0 output [T/F] default=F .IP "\(bu" 4 \&\fBl\fR => Restrict search of database to list of \s-1GI\s0's [String] .PP \&\s-1NOTE:\s0 If you do not supply an `o' option (outfile), the following environment variables are checked in order: `\s-1TMPDIR\s0', `\s-1TEMP\s0', and `\s-1TMP\s0'. If one of them is set, outfiles are created relative to the directory it specifies. If none of them are set, the first possible one of the following directories is used: /var/tmp , /usr/tmp , /temp , /tmp , This file is deleted after the NHGRI::Blastall object is destroyed. It is recommended that you create a tmp directory in your home directory and set one of the above environmental vars to point to this directory and then set the permissions on this directory to 0700. Writing to a \*(L"public\*(R" tmp directory can have security ramifications. .SH "BL2SEQ" .IX Header "BL2SEQ" This method uses the bl2seq binary (distributed with \s-1BLAST\s0 executables and source) to \s-1BLAST\s0 one sequence against another sequence. Like the blastall method the bl2seq method accepts the same options that the bl2seq binary accepts. Run bl2seq without options from the command line to get a full list of options. An important note about the options, when running blastx 1st sequence should be nucleotide; when running tblastn 2nd sequence should be nucleotide. .PP .Vb 6 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->bl2seq(i => \*(Aqseq1.nt\*(Aq, \& j => \*(Aqseq2.aa\*(Aq, \& p => \*(Aqblastx\*(Aq \& ); .Ve .SH "BLAST_ONE_TO_MANY" .IX Header "BLAST_ONE_TO_MANY" This method allows for blasting one sequence against a \s-1FASTA\s0 library of sequences. Behind the scenes, \s-1BLAST\s0 indexes are created (in the same directory as the \s-1FASTA\s0 library) using the provided \s-1FASTA\s0 library and the one sequence is used to search against this database. If the program completes successfully, the databases are removed. To compare two sequences, use the bl2seq method which is faster and less messy (no tmp indexes). This method accepts the same options as the blastall binary with the d option corresponding to the \&\s-1FASTA\s0 library. .PP .Vb 7 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->blast_one_to_many(i => \*(Aqseq.aa\*(Aq, \& d => \*(Aqseq.nt.lib\*(Aq, \& e => \*(Aq0.001\*(Aq, \& p => \*(Aqtblastn\*(Aq, \& ); .Ve .SH "MASKING" .IX Header "MASKING" Screens \s-1DNA\s0 sequences in fasta format against the database specified in the blastall 'd' option. The mask method accepts the same parameters as the blastall method. Any matches to the masking database will be substituted with \*(L"N\*(R"s. The mask method returns the masked sequence. Performs similar function as xblast, an old \s-1NCBI\s0 program written in C. .PP Set the type parameter to wu_blastall, blastcl3 or blastall depending on your configuration. .PP .Vb 5 \& $masked_seq = $b\->mask( type => \*(Aqblastcl3\*(Aq, # defaults to blastall \& p => \*(Aqblastn\*(Aq, \& d => \*(Aqalu\*(Aq, \& i => \*(Aqinfile\*(Aq \& ); .Ve .PP To get the mask coordinates back call the mask method in an array context. .PP .Vb 6 \& @mask = $b\->mask(p => \*(Aqblastn\*(Aq, \& d => \*(Aqalu\*(Aq, \& i => \*(Aqinfile\*(Aq \& ); \& $masked_seq = $mask[0]; # same as above masked seq \& $ra_masked_coords = $mask[1]; # reference to array of mask coordinates .Ve .SH "FORMATDB" .IX Header "FORMATDB" This method creates \s-1BLAST\s0 indexes using the formatdb binary which is distributed with \s-1BLAST.\s0 It accepts the same parameters as formatdb. The remove_formatdb_indexes method will remove databases created using the formatdb method (if called by the same object). formatdb leaves a file called formatdb.log by default in the current working directory (if it has permission). To change this behavior, use the l option to direct the sequence to /dev/null or somewhere else. .PP .Vb 7 \& use NHGRI::Blastall; \& my $b = new NHGRI::Blastall; \& $b\->formatdb( i => \*(Aqswissprot\*(Aq, \& p => \*(AqT\*(Aq, \& l => \*(Aq/dev/null\*(Aq, \& o => \*(AqT\*(Aq, \& ); .Ve .SH "DB_ID_REGEX" .IX Header "DB_ID_REGEX" By default Blastall.pm expects \s-1FASTA\s0 deflines of \s-1BLAST\s0 databases to be formatted like Genbank database (gi|GINUMBER|DATABASE|ACCESSION|SUMMARY). The default regular expression is [^\e|]+(?:\e|[^\e|,\es]*){1,10} When using non-genbankformatted deflines, it may become necessary to adjust the regular expression that identifies the unique identifier in a defline. This can be done with the \-DB_ID_REGEX parameter to the new method. For example .PP .Vb 1 \& $b = new NHGRI::Blastall( \-DB_ID_REGEX => \*(Aq[^ ]+\*(Aq ); .Ve .SH "FILTERING" .IX Header "FILTERING" The filter method accepts an anonymous hash in which the keys are elements of the blast report and the values are limits that are put on the result set. .PP The following are the Filter elements and their default operations. .PP .Vb 10 \& id => regular expression match \& defline => regular expression match \& subject_length => greater than \& scores => greater than \& expects => less than \& identities => greater than \& match_length => greater than \& subject_strand => equals \& query_frames => equals \& subject_frames => equals .Ve .PP so if you would like to limit your results to entries that have scores greater than 38.2 and identities greater than 98% you would say... .PP .Vb 3 \& @hits = $b\->filter( scores => \*(Aq38.2\*(Aq, \& identities => \*(Aq.98\*(Aq \& ); .Ve .PP you can also override the defaults. if you would like only scores that are less than 38.2 you could say... .PP .Vb 1 \& @hits = $b\->filter( scores => \*(Aq<38.2\*(Aq ); .Ve .PP or if you wanted only identities that were equal to 1 and you didn't care about the hits array you could say... .PP .Vb 1 \& $b\->filter( identities => \*(Aq=1\*(Aq ); .Ve .PP Regular expression matches are case insensitive. If you wanted only records with the word \*(L"human\*(R" in the defline you could say... .PP .Vb 1 \& @hits = $b\->filter( defline => \*(AqHuMaN\*(Aq ); .Ve .PP After you run the filter method on an object the object only contains those results which passed the filter. This will effect additional calls to the filter method as well as calls to other methods (e.g. result). To reset the NHGRI::Blastall object you can use the unfilter method. .PP .Vb 1 \& $b\->unfilter(); .Ve .PP See \s-1DUMP RESULTS\s0 for info on how to manipulate the array of hash refs. .SH "RESULT" .IX Header "RESULT" .Vb 2 \& The result method has 3 possible invocations. The first invocation \& is when it is called without parameters. \& \& @results = $b\->result(); \& \& This invocation returns an array of hash references. \& See HASHREF for further explanation of this structure. \& \& To get a list of all the ids do... \& \& @ids = $b\->result(\*(Aqid\*(Aq); \& \& These ids can be used to get at specific elements. If 2 parameters \& are present and the first one is an element (See ELEMENTS for a list \& of ELEMENTS) and the second one is an id then the routine will \& return a list of elements corresponding to the id. \& \& @scores = $b\->result(\*(Aqscores\*(Aq,$ids[0]); # second param must be an id \& \& If more than 2 elements are passed the function will return undef. .Ve .SH "ACCESSOR METHODS" .IX Header "ACCESSOR METHODS" .IP "\fBget_report\fR" 4 .IX Item "get_report" .Vb 1 \& returns the filename of the BLAST report. .Ve .IP "\fBget_database_description\fR" 4 .IX Item "get_database_description" .Vb 2 \& returns description given to the database during formatting of db. \& e.g. All non\-redundant GenBank CDStranslations+PDB+SwissProt+PIR .Ve .IP "\fBget_database_sequence_count\fR" 4 .IX Item "get_database_sequence_count" .Vb 1 \& returns the number of sequences in the database. .Ve .IP "\fBget_database_letter_count\fR" 4 .IX Item "get_database_letter_count" .Vb 1 \& returns the number of total letters in the database. .Ve .IP "\fBget_blast_program\fR" 4 .IX Item "get_blast_program" .Vb 2 \& returns the BLAST program name that appears at the top of the report. \& either BLASTN, BLASTP, BLASTX, TBLASTN or TBLASTX .Ve .IP "\fBget_blast_version\fR" 4 .IX Item "get_blast_version" .Vb 1 \& returns the version of the BLAST program that was used. .Ve .SH "ELEMENTS" .IX Header "ELEMENTS" .IP "\fBid\fR" 4 .IX Item "id" .Vb 7 \& an example of an id is \`>gb|U19386|MMU19386\*(Aq the initial \`>\*(Aq \& is just a flag. The next characters up until the first pipe \& is the database the subject was taken from. The next characters \& up to the next pipe is the Genbank accession number. The last \& characters are the locus. This element is used as a unique \& identifier by the NHGRI::Blastall module. \& (SCALAR) .Ve .IP "\fBdefline\fR" 4 .IX Item "defline" .Vb 2 \& The definition line taken from the subject \& (SCALAR) .Ve .IP "\fBsubject_length\fR" 4 .IX Item "subject_length" .Vb 3 \& This is the length of the full subject, not the \& length of the match. \& (SCALAR) .Ve .IP "\fBscores\fR" 4 .IX Item "scores" .Vb 2 \& This is score (in bits) of the match. \& (ARRAY) .Ve .IP "\fBexpects\fR" 4 .IX Item "expects" .Vb 2 \& This is the statistical significance (\`E value\*(Aq) for the match. \& (ARRAY) .Ve .IP "\fBidentities\fR" 4 .IX Item "identities" .Vb 4 \& This is the number of identities divided by the match \& length in decimal format. (Listed as a fraction and a percentage \& in a BLAST report.) \& (ARRAY) .Ve .IP "\fBmatch_lengths\fR" 4 .IX Item "match_lengths" .Vb 2 \& this is the number of base pairs that match up. \& (ARRAY) .Ve .IP "\fBquery_starts\fR" 4 .IX Item "query_starts" .Vb 3 \& This is the number of the first base which matched \& with the subject. \& (ARRAY) .Ve .IP "\fBquery_ends\fR" 4 .IX Item "query_ends" .Vb 3 \& This is the number of the last base which matched \& with the subject. \& (ARRAY) .Ve .IP "\fBsubject_starts\fR" 4 .IX Item "subject_starts" .Vb 3 \& This is the number of the first base which matched \& with the query. \& (ARRAY) .Ve .IP "\fBsubject_ends\fR" 4 .IX Item "subject_ends" .Vb 3 \& This is the number of the last base which matched \& with the query. \& (ARRAY) .Ve .IP "\fBsubject_strands\fR" 4 .IX Item "subject_strands" .Vb 3 \& This is either plus or minus depending on the orientation \& of the subject sequence in the match. \& (ARRAY) .Ve .IP "\fBquery_strands\fR" 4 .IX Item "query_strands" .Vb 3 \& This is either plus or minus depending on the orientation \& of the query sequence in the match. \& (ARRAY) .Ve .IP "\fBquery_frames\fR" 4 .IX Item "query_frames" .Vb 4 \& If you are running a blastx or tblastx search in which the \& query_sequence is translated this is the frame the query \& sequence matched. \& (ARRAY) .Ve .IP "\fBsubject_frames\fR" 4 .IX Item "subject_frames" .Vb 4 \& If you are running a tblastn or tblastx search in which the \& subject sequence is translated, this is the frame where the \& subject sequence matched. \& (ARRAY) .Ve .SH "HASHREF" .IX Header "HASHREF" .Vb 5 \& Each hash ref contains an id, defline and subject Length. Because \& there can be multiple scores, expect values, Identities, match_lengths, \& query_starts, query_strands and subject_starts, these are stored \& as array references. The following is an array containing two hash \& refs. \& \& @hits = ( \& {\*(Aqid\*(Aq => \*(Aq>gb|U79716|HSU79716\*(Aq, \& \*(Aqdefline\*(Aq => \*(AqHuman reelin (RELN) mRNA, complete cds\*(Aq, \& \*(Aqsubject_length\*(Aq => \*(Aq11580\*(Aq, \& \*(Aqscores\*(Aq => [ 684, 123 ], \& \*(Aqexpects\*(Aq => [ 0.0, 3e\-26 ], \& \*(Aqidentities\*(Aq => [ .99430199, .89256198 ], \& \*(Aqmatch_lengths\*(Aq => [ 351, 121 ], \& \*(Aqquery_starts\*(Aq => [ 3, 404 ], \& \*(Aqquery_ends\*(Aq => [ 303, 704 ], \& \*(Aqsubject_starts\*(Aq => [ 5858, 6259 ], \& \*(Aqsubject_ends\*(Aq => [ 6158, 6559 ], \& \*(Aqsubject_strands\*(Aq => [ \*(Aqplus\*(Aq, \*(Aqminus\*(Aq ], \& \*(Aqquery_strands\*(Aq => [ \*(Aqplus\*(Aq, \*(Aqplus\*(Aq ], \& \*(Aqquery_frames\*(Aq => [ \*(Aq+1\*(Aq, \*(Aq\-3\*(Aq ], \& \*(Aqsubject_frames\*(Aq => [ \*(Aq+2\*(Aq, \*(Aq\-1\*(Aq ], \& }, \& {\*(Aqid\*(Aq => \*(Aq>gb|U24703|MMU24703\*(Aq, \& \*(Aqdefline\*(Aq => \*(AqMus musculus reelin mRNA, complete cds\*(Aq, \& \*(Aqsubject_length\*(Aq => \*(Aq11673\*(Aq, \& \*(Aqscores\*(Aq => [ 319, 38.2 ], \& \*(Aqexpects\*(Aq => [ 2e\-85, 1.2 ], \& \*(Aqidentities\*(Aq => [ .86455331, 1 ], \& \*(Aqmatch_lengths\*(Aq => [ 347, 19 ], \& \*(Aqquery_starts\*(Aq => [ 3, 493 ], \& \*(Aqquery_ends\*(Aq => [ 303, 793 ], \& \*(Aqsubject_starts\*(Aq => [ 5968, 6457 ] \& \*(Aqsubject_ends\*(Aq => [ 6268, 6757 ], \& \*(Aqsubject_strands\*(Aq => [ \*(Aqplus\*(Aq, \*(Aqminus\*(Aq ], \& \*(Aqquery_strands\*(Aq => [ \*(Aqplus\*(Aq, \*(Aqplus\*(Aq ], \& \*(Aqquery_frames\*(Aq => [ \*(Aq+3\*(Aq, \*(Aq\-3\*(Aq ], \& \*(Aqsubject_frames\*(Aq => [ \*(Aq+1\*(Aq, \*(Aq\-2\*(Aq ], \& } \& ); \& \& See ELEMENTS for explanation of each element. \& See DUMP RESULTS and/or the perlref(1) manpage for clues on working \& with this structure. .Ve .SH "DUMP RESULTS" .IX Header "DUMP RESULTS" .Vb 7 \& When calling the result function or with no parameters, or calling the \& filter function, an array of references to hashes is returned. \& Each element of the array is a reference to a hash containing 1 record. \& See HASHREF for details on this structure. The following \& routine will go through each element of the array of hashes and \& then print out the element and it\*(Aqs corresponding value or values. \& See perlref(1) for more info on references. \& \& sub dump_results { \& foreach $rh_r (@results) { \& while (($key,$value) = each %$rh_r) { \& if (ref($value) eq "ARRAY") { \& print "$key: "; \& foreach $v (@$value) { \& print "$v "; \& } \& print "\en"; \& } else { \& print "$key: $value\en"; \& } \& } \& } \& } .Ve .SH "AUTHOR" .IX Header "AUTHOR" .IP "\(bu" 4 Joseph Ryan (jfryan@nhgri.nih.gov) .SH "CONTACT ADDRESS" .IX Header "CONTACT ADDRESS" If you have problems, questions, comments send to webblaster@nhgri.nih.gov .SH "COPYRIGHT INFORMATION" .IX Header "COPYRIGHT INFORMATION" This software/database is \*(L"United States Government Work\*(R" under the terms of the United States Copyright Act. It was written as part of the authors' official duties for the United States Government and thus cannot be copyrighted. This software/database is freely available to the public for use without a copyright notice. Restrictions cannot be placed on its present or future use. .PP Although all reasonable efforts have been taken to ensure the accuracy and reliability of the software and data, the National Human Genome Research Institute (\s-1NHGRI\s0) and the U.S. Government does not and cannot warrant the performance or results that may be obtained by using this software or data. \s-1NHGRI\s0 and the U.S. Government disclaims all warranties as to performance, merchantability or fitness for any particular purpose. .PP In any work or product derived from this material, proper attribution of the authors as the source of the software or data should be made, using http://genome.nhgri.nih.gov/blastall as the citation. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" .IP "\fB\s-1BLASTDB\s0\fR" 4 .IX Item "BLASTDB" location of \s-1BLAST\s0 formatted databases .IP "\fB\s-1BLASTMAT\s0\fR" 4 .IX Item "BLASTMAT" location of \s-1BLAST\s0 matrices .IP "\fB\s-1TMPDIR\s0\fR \fB\s-1TEMP\s0\fR \fB\s-1TMP\s0\fR" 4 .IX Item "TMPDIR TEMP TMP" If the `o' option is not passed to the blastall method than NHGRI::Blastall looks for one of these vars (in order) to store the \s-1BLAST\s0 report. This report is destroyed after the NHGRI::Blastall.pm object is destroyed. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBperl\fR\|(1) \fBperlref\fR\|(1) .PP http://www.ncbi.nlm.nih.gov/BLAST/newblast.html .PP ftp://ncbi.nlm.nih.gov/blast/db/README .PP http://www.ncbi.nlm.nih.gov/BLAST/tutorial/Altschul\-1.html