The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

fassort - sort sequences based on identifiers

SYNOPSIS

fassort [OPTION]... [MULTIFASTA-FILE]...

DESCRIPTION

fassort takes sequence or alignment data as input, and outputs sequence records sorted by some user-defined criteria. By default, sequences are sorted ASCIIbetically by their identifiers. Optionally sequences may be sorted by their sequences, descriptions or components of descripions.

Options specific to fassort: -d, --description sort on description -s, --sequence sort on sequence -f, --field=<int> sort on field in description -t, --tag=<string> sort on value of a (tag,value) pair in the description -x, --regex=<regex> sort on value of a regex capture -S, --split-on-regex=<regex> split description for field matching using regex -r, --reverse reverse result of comparisons -n, --numeric compare according to string numerical value

Options general to FAST: -h, --help print a brief help message --man print full documentation --version print version -l, --log create/append to logfile -L, --logname=<string> use logfile name <string> -C, --comment=<string> save comment <string> to log --format=<format> use alternative format for input --moltype=<[dna|rna|protein]> specify input sequence type -q, --fastq use fastq format as input and output

INPUT AND OUTPUT

fassort is part of FAST, the FAST Analysis of Sequences Toolbox, based on Bioperl. Most core FAST utilities expect input and return output in multifasta format. Input can occur in one file or on STDIN. Output occurs to STDOUT. The FAST utility fasconvert can reformat other formats to and from multifasta.

DEFAULT AND OPTIONAL SORTING BEHAVIOR

By default, fassort sorts sequence records by their identifiers. Options described below modify which parts of sequence records are sorted on. These options take effect as follows with decreasing priority: -t > -xd > -xs > -x > -f > -d > -s

OPTIONS

-d, --description

Sort sequence records by their descriptions. If used in combination with the -x, --regex option, sort records by values of a regex capture applied to their descriptions.

-s, --match-sequence

Sort sequence records by their sequences. If used in combination with the -x, --regex option, sort records by values of a regex capture applied to their sequences.

-f [int], --field=[int]

Sort sequence records by values at a specific field in sequence descriptions. With this option, the description is split into fields using strings of white space as field delimiters (the default Perl behavior for splitting lines of data into fields).

This option takes a mandatory positive integer option argument giving the index for which field the regex should query. One-based indexing is used, so the first field after the sequence identifier has index 1. As standard in Perl, negative indices count backwards from the last field in the description; field "-1" is the last field, "-2" is the second-to-last etc. Sequence records for which the specified field does not exist will sort on a null key.

-S [regex], --split-on-regex=[regex]

Use regex <regex> to split descriptions for the -f option instead of the perl default (which splits on one or more whitespace characters). Special characters must be quoted to protect them from the shell.

-t [string], --tag=[string]

Sort sequence records by values of a named tag in the description. Name-value pairs in the description are expected to have the format "name:value" as generated by FAST tools (such as faslen) or "name=value" as common in General Feature Format. The "name" must contain only characters from the set [a-zA-Z0-9_-]. The "value" is any string of non-whitespace characters. Sequence records for which the specified tag does not exist will sort on a null key.

-x [regex], --regex=[regex]

Sort sequence records by values of a regex capture applied to identifers (by default), descriptions (in combination with the -d option), or sequences (in combination with the -s option). The format of the regex is a perl regular expression that must contain exactly one "capture buffer" indicated by a pair or parentheses. The value captured in this buffer is the sort key. Sequence records that do not match the regex will sort on a null key.

-r, --reverse

Reverse the result of comparisons so that greater keys come first.

-n, --numeric

Compare keys by their string numerical value.

-h, --help

Print a brief help message and exit.

--man

Print the manual page and exit.

--version

Print version information and exit.

-l, --log

Creates, or appends to, a generic FAST logfile in the current working directory. The logfile records date/time of execution, full command with options and arguments, and an optional comment.

-L [string], --logname=[string]

Use [string] as the name of the logfile. Default is "FAST.log.txt".

-C [string], --comment=[string]

Include comment [string] in logfile. No comment is saved by default.

--format=[format]

Use alternative format for input. See man page for "fasconvert" for allowed formats. This is for convenience; the FAST tools are designed to exchange data in Fasta format, and "fasta" is the default format for this tool.

-m [dna|rna|protein], --moltype=[dna|rna|protein]

Specify the type of sequence on input (should not be needed in most cases, but sometimes Bioperl cannot guess and complains when processing data).

-q --fastq

Use fastq format as input and output.

EXAMPLES

Sort sequences by their length:

    faslen data.fas | fassort -nt length

Sort sequences by their third-position adenosine contents:

    fascut 1:-1:3 cds.fas | fascomp | fassort -nt comp_A

SEE ALSO

man perlre
perldoc perlre

Documentation on perl regular expressions.

man FAST
perldoc FAST

Introduction and cookbook for FAST

The FAST Home Page"

CITING

If you use FAST, please cite Lawrence et al. (2015). FAST: FAST Analysis of Sequences Toolbox. and Bioperl Stajich et al..