---
name: "Bio::Tools::Run::Alignment::Blat"
section: "3pm"
platform: "linux"
package: "libbio-perl-run-perl"
version: "1.7.3-13"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Bio::Tools::Run::Alignment::Blat"
---

# Bio::Tools::Run::Alignment::Blat(3pm)

wrapper modules for the Blat program

## NAME

Bio::Tools::Run::Alignment::Blat - wrapper modules for the Blat program

## SYNOPSIS

```
 use Bio::Tools::Run::Alignment::Blat;
 my $factory = Bio::Tools::Run::Alignment::Blat->new(-db => $database);
 # $report is a Bio::SearchIO-compliant object
 my $report = $factory->run($seqobj);
```

## DESCRIPTION

Wrapper module for Blat program. This newer version allows for all parameters to be set by passing them as an option to **new()**.

Key bits not implemented yet (TODO):

- •

  Implement all needed Bio::Tools::Run::WrapperBase methods

  Missing are a few, including **version()**.

- •

  Re-implement using IPC::Run

  Would like to get this running under something less reliant on OS-dependent changes within code.

- •

  No .2bit or .nib conversions yet

  These require callouts to faToNib or faTwoTwoBit, which may or may not be installed on a user's machine.  We can possibly add functionality to check for faToTwoBit/faToNib and other UCSC tools in the future.

## FEEDBACK

### Mailing Lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists.  Your participation is much appreciated.

```
  bioperl-l@bioperl.org                  - General discussion
  http://bioperl.org/wiki/Mailing_lists  - About the mailing lists
```

### Support

Please direct usage questions or support issues to the mailing list:

*bioperl-l@bioperl.org*

rather than to the module maintainer directly. Many experienced and  reponsive experts will be able look at the problem and quickly  address it. Please include a thorough description of the problem  with code and data examples if at all possible.

### Reporting Bugs

Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution.  Bug reports can be submitted via the web:

```
  http://redmine.open-bio.org/projects/bioperl/
```

## AUTHOR

```
 Chris Fields - cjfields at bioperl dot org
 Original author - Bala Email bala@tll.org.sg
```

## APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a \_

### new

```
 Title   : new
 Usage   : $blat->new( -db => '' )
 Function: Create a new Blat factory
 Returns : A new Bio::Tools::Run::Alignment::Blat object
 Args    : -db       : Mandatory parameter. See db()
           -qsegment : see qsegment()
           -tsegment : see tsegment()
           Also, Blat parameters and flags are accepted: -t, -q, -minIdentity,
              -minScore, -out, -trimT, ...
           See Blat's manual for details.
```

### program\_name

```
 Title   : program_name
 Usage   : $factory->program_name()
 Function: Get the program name
 Returns : string
 Args    : None
```

### program\_dir

```
 Title   : program_dir
 Usage   : $factory->program_dir(@params)
 Function: returns the program directory, obtained from ENV variable.
 Returns : string
 Args    :
```

### run

```
 Title   : run()
 Usage   : $obj->run($query)
 Function: Run Blat.
 Returns : A Bio::SearchIO object that holds the results
 Args    : A Bio::PrimarySeqI object or a file of query sequences
```

### align

```
 Title   : align
 Usage   : $obj->align($query)
 Function: Alias to run()
```

### db

```
 Title   : db
 Usage   : $obj->db()
 Function: Get or set the file of database sequences (.fa , .nib or .2bit)
 Returns : Database filename
 Args    : Database filename
```

### qsegment

```
 Title    : qsegment
 Usage    : $obj->qsegment('sequence_a:0-1000')
 Function : pass in a B<UCSC-compliant> string for the query sequence(s)
 Returns  : string
 Args     : string
 Note     : Requires the sequence(s) in question be 2bit or nib format
 Reminder : UCSC segment/regions coordinates are 0-based half-open (sequence
            begins at 0, but start isn't counted with length), whereas BioPerl
            coordinates are 1-based closed (sequence begins with 1, both start
            and end are counted in the length of the segment). For example, a
            segment that is 'sequence_a:0-1000' will have BioPerl coordinates of
            'sequence_a:1-1000', both with the same length (1000).
```

### tsegment

```
 Title    : tsegment
 Usage    : $obj->tsegment('sequence_a:0-1000')
 Function : pass in a B<UCSC-compliant> string for the target sequence(s)
 Returns  : string
 Args     : string
 Note     : Requires the sequence(s) in question be 2bit or nib format
 Reminder : UCSC segment/regions coordinates are 0-based half-open (sequence
            begins at 0, but start isn't counted with length), whereas BioPerl
            coordinates are 1-based closed (sequence begins with 1, both start
            and end are counted in the length of the segment). For example, a
            segment that is 'sequence_a:0-1000' will have BioPerl coordinates of
            'sequence_a:1-1000', both with the same length (1000).
```

### outfile\_name

```
 Title    : outfile_name
 Usage    : $obj->outfile_name('out.blat')
 Function : Get or set the name for the BLAT output file
 Returns  : string
 Args     : string
```

### searchio

```
 Title    : searchio
 Usage    : $obj->searchio{-writer => $writer}
 Function : Pass in additional parameters to the returned Bio::SearchIO parser
 Returns  : Hash reference with Bio::SearchIO parameters
 Args     : Hash reference
 Note     : Currently, this implementation overrides any passed -format
            parameter based on whether the output is changed ('out').  This
            may change if requested, but we can't see the utility of doing so,
            as requesting mismatched output/parser combinations is just a recipe
            for disaster
```

## Bio::ParameterBaseI-specific methods

These methods are part of the Bio::ParameterBaseI interface

### set\_parameters

```
 Title   : set_parameters
 Usage   : $pobj->set_parameters(%params);
 Function: sets the parameters listed in the hash or array
 Returns : None
 Args    : [optional] hash or array of parameter/values.  These can optionally
           be hash or array references
 Note    : This only sets parameters; to set methods use the method name
```

### reset\_parameters

```
 Title   : reset_parameters
 Usage   : resets values
 Function: resets parameters to either undef or value in passed hash
 Returns : none
 Args    : [optional] hash of parameter-value pairs
```

### validate\_parameters

```
 Title   : validate_parameters
 Usage   : $pobj->validate_parameters(1);
 Function: sets a flag indicating whether to validate parameters via
           set_parameters() or reset_parameters()
 Returns : Bool
 Args    : [optional] value evaluating to True/False
 Note    : NYI
```

### parameters\_changed

```
 Title   : parameters_changed
 Usage   : if ($pobj->parameters_changed) {...}
 Function: Returns boolean true (1) if parameters have changed
 Returns : Boolean (0 or 1)
 Args    : None
 Note    : This module does not run state checks, so this always returns True
```

### available\_parameters

```
 Title   : available_parameters
 Usage   : @params = $pobj->available_parameters()
 Function: Returns a list of the available parameters
 Returns : Array of parameters
 Args    : [optional] name of executable being used; defaults to returning all
           available parameters
```

### get\_parameters

```
 Title   : get_parameters
 Usage   : %params = $pobj->get_parameters;
 Function: Returns list of set key-value pairs, parameter => value
 Returns : List of key-value pairs
 Args    : none
```

## to\_\* methods

All to\_\* methods are implementation-specific

### to\_exe\_string

```
 Title   : to_exe_string
 Usage   : $string = $pobj->to_exe_string;
 Function: Returns string (command line string in this case)
 Returns : String
 Args    :
```
