## NAME

gt-select - Select certain features (specified by the used options) from given GFF3 file(s).

## SYNOPSIS

gt select [option …] [GFF3_file …]

## DESCRIPTION

-retainids [yes|no]

  when available, use the original IDs provided in the source file (memory consumption is proportional to the input file size(s)) (default: no)

-seqid [string]

  select feature with the given sequence ID (all comments are selected). (default: undefined)

-source [string]

  select feature with the given source (the source is column 2 in regular GFF3 lines) (default: undefined)

-contain [start end]

  select all features which are contained in the given range (default: undefined)

-overlap [start end]

  select all features which do overlap with the given range (default: undefined)

-strand [string]

  select all top-level features(i.e., features without parents) whose strand equals the given one (must be one of +-.?) (default: undefined)

-targetstrand [string]

  select all top-level features (i.e., features without parents) which have exactly one target attribute whose strand equals the given one (must be one of +-.?) (default: undefined)

-targetbest [yes|no]

  if multiple top-level features (i.e., features without parents) with exactly one target attribute have the same target_id, keep only the feature with the best score. If -targetstrand is used at the same time, this option is applied after -targetstrand. Memory consumption is proportional to the input file size(s). (default: no)

-hascds [yes|no]

  select all top-level features which do have a CDS child (default: no)

-maxgenelength [value]

  select genes up to the given maximum length (default: undefined)

-maxgenenum [value]

  select the first genes up to the given maximum number (default: undefined)

-mingenescore [value]

  select genes with the given minimum score (default: undefined)

-maxgenescore [value]

  select genes with the given maximum score (default: undefined)

-minaveragessp [value]

  set the minimum average splice site probability (default: undefined)

-rule_files

  specify Lua filter rule files to be used for selection (terminate list with --)

-rule_logic […]

  select how multiple Lua files should be combined choose from AND|OR (default: AND)

-dropped_file [filename]

  save non-selected features to file (default: undefined)

-v [yes|no]

  be verbose (default: no)

-o [filename]

  redirect output to specified file (default: undefined)

-gzip [yes|no]

  write gzip compressed output file (default: no)

-bzip2 [yes|no]

  write bzip2 compressed output file (default: no)

-force [yes|no]

  force writing to output file (default: no)

-help

  display help and exit

-version

  display version information and exit

File format for option -rule_files:

The files supplied to option -rule_files define a function for filtering by user given criteria (see example below):

    function filter(gn)
      target = "exon"
      for curnode in gn:children() do
        if (curnode:get_type() == target) then
          return false
        end
      end
      return true
    end

The above function iterates over all children of gn and checks whether there is a node of type exon. If there is such a node the function returns false, indicating that the parent node gn will not be sorted out.

NOTE: The function must be named filter and must return false, indicating that the node survived the filtering process.

## REPORTING BUGS

Report bugs to https://github.com/genometools/genometools/issues.