LAST FAQ

Q:Does it matter which sequence is used as the "reference" (given to lastdb) and which is used as the "query" (given to lastal)?
A:It may do. In short, LAST tries hard to find alignments for every position in the query. When mapping reads to a genome, you probably want the genome to be the reference, and the reads to be the query. That way, for each read, it will search for several most-similar locations in the genome. The other way, for each location in the genome, it will search for several most-similar reads. As another example, if you compare a genome to a library of repeat sequences, you probably want the genome to be the query and the repeat library to be the reference.

Q:How can I get the percent-identity of each alignment?
A:Use maf-convert to convert them to blast or psl format.

Q:

Why is LAST so slow at reading/writing files?

A:

Probably because the files are huge and your disk is slow (or lots of people are using it). Try to use a reasonably fast disk.

Typically, after reading a large file once, subsequent reads of the same file are much faster, because the operating system caches it.

lastal reads files into shared memory using "mmap", and this occasionally seems to have trouble, notably on "advanced" file systems (Lustre and GlusterFS).

On one Linux system, the above-mentioned cache occasionally got into some kind of bad state, making lastal very slow. This was solved by running the following command (as root):

echo 1 > /proc/sys/vm/drop_caches

Q:I'd like to compare my queries to a database of known proteins. Where can I get a database of known proteins?
A:You could try UniRef90 or UniRef50 (http://www.uniprot.org/help/uniref), which have reduced redundancy.

Q:

How does LAST get the sequence names? How can I get nice, short, unique names?

A:

The first whitespace-delimited word in the sequence header line is used as the name. You can arbitrarily customise the names using standard Unix tools. For example, this will replace each FASTA name with a unique serial number:

awk '/>/ {$0 = ">" ++n} {print}' queries.fasta | lastal myDb -

This will do the same for FASTQ (assuming 4 lines per record, i.e. no line wrapping):

awk 'NR % 4 == 1 {$0 = "@" ++n} {print}' queries.fastq | lastal myDb -

Sometimes you can make LAST's output significantly smaller by shortening the names.


Q:

How can I find alignments with > 95% identity?

A:

One way is to use a scoring scheme like this: +5 for a match, and -95 for a mismatch or a gap. You'll also need to set the alignment score threshold to a reasonable value. In this example we set it to 150, which means that we require at least 30 matches:

lastal -r5 -q95 -a0 -b95 -e150