| extractfeat

## Wiki

The master copies of EMBOSS documentation are available at http://emboss.open-bio.org/wiki/Appdocs on the EMBOSS Wiki.

Please help by correcting and extending the Wiki pages.

## Function

Extract features from sequence(s)

## Description

extractfeat is a simple utility for extracting regions of a sequence that are annotated as being a specified type of feature. It reads one or more sequences, and writes out the sequences and features of interest to an output sequence file. 'joined' features can either be extracted as individual sequences, or as a single concatenated sequence if the `-join` qualifier is used. If the feature is annotated as being in the reverse sense of a nucleic acid sequence, then that feature's sub-sequence is reverse-complemented before it is written.

There are many options control exactly what parts of the feature table are given in the output file. In addition, it is often useful to have contextual information about a feature. There are options to specify a number of positions before and/or after the specified feature which will be reported in the output file.

## Usage

Here is a sample session with extractfeat

To write out the exons of a sequence:

    % extractfeat tembl:x65921 -type exon
    Extract features from sequence(s)
    output sequence [x65921.fasta]:

Go to the input files for this example
Go to the output files for this example

Example 2

To write out the exons with 10 extra bases at the start and end so that you can inspect the splice sites:

    % extractfeat tembl:x65921 -type exon -before 10 -after 10
    Extract features from sequence(s)
    output sequence [x65921.fasta]:

Go to the output files for this example

Example 3

To write out the 10 bases around the start of all 'exon' features in the tembl database:

    % extractfeat 'tembl:*'  -type exon -before 5 -after -5
    Extract features from sequence(s)
    output sequence [h45989.fasta]:

Go to the output files for this example

Example 4

To extract the CDS region with the exons joined into one sequence:

    % extractfeat tembl:x65921 -type CDS -join
    Extract features from sequence(s)
    output sequence [x65921.fasta]:

Go to the output files for this example

Example 5

To write out the 7 residues around all phosphorylated serine residues

    % extractfeat 'tsw:*' -type MOD_RES -value 'phosphoserine*' -before 3 -after -4
    Extract features from sequence(s)
    output sequence [12s1_arath.fasta]:

Go to the output files for this example

## Command line arguments

    Extract features from sequence(s)
    Version: EMBOSS:6.2.0

       Standard (Mandatory) qualifiers:
      [-sequence]          seqall     Sequence(s) filename and optional format, or
                                      reference (input USA)
      [-outseq]            seqout     [<sequence>.<format>] Sequence filename and
                                      optional format (output USA)

       Additional (Optional) qualifiers:
       -before             integer    [0] If this value is greater than 0 then
                                      that number of bases or residues before the
                                      feature are included in the extracted
                                      sequence. This allows you to get the context
                                      of the feature. If this value is negative
                                      then the start of the extracted sequence
                                      will be this number of bases/residues before
                                      the end of the feature. So a value of '10'
                                      will start the extraction 10 bases/residues
                                      before the start of the sequence, and a
                                      value of '-10' will start the extraction 10
                                      bases/residues before the end of the
                                      feature. The output sequence will be padded
                                      with 'N' or 'X' characters if the sequence
                                      starts after the required start of the
                                      extraction. (Any integer value)
       -after              integer    [0] If this value is greater than 0 then
                                      that number of bases or residues after the
                                      feature are included in the extracted
                                      sequence. This allows you to get the context
                                      of the feature. If this value is negative
                                      then the end of the extracted sequence will
                                      be this number of bases/residues after the
                                      start of the feature. So a value of '10'
                                      will end the extraction 10 bases/residues
                                      after the end of the sequence, and a value
                                      of '-10' will end the extraction 10
                                      bases/residues after the start of the
                                      feature. The output sequence will be padded
                                      with 'N' or 'X' characters if the sequence
                                      ends before the required end of the
                                      extraction. (Any integer value)
       -source             string     [*] By default any feature source in the
                                      feature table is shown. You can set this to
                                      match any feature source you wish to show.
                                      The source name is usually either the name
                                      of the program that detected the feature or
                                      it is the feature table (eg: EMBL) that the
                                      feature came from.
                                      The source may be wildcarded by using '*'.
                                      If you wish to show more than one source,
                                      separate their names with the character '|',
                                      eg:
                                      gene* | embl (Any string)
       -type               string     [*] By default every feature in the feature
                                      table is extracted. You can set this to be
                                      any feature type you wish to extract.
                                      See http://www.ebi.ac.uk/Services/WebFeat/
                                      for a list of the EMBL feature types and see
                                      the Uniprot user manual in
                                      http://www.uniprot.org/manual/sequence_annotation
                                      for a list of the Uniprot feature types.
                                      The type may be wildcarded by using '*'.
                                      If you wish to extract more than one type,
                                      separate their names with the character '|',
                                      eg:
                                      *UTR | intron (Any string)
       -sense              integer    [0 - any sense, 1 - forward sense, -1 -
                                      reverse sense] By default any feature type
                                      in the feature table is extracted. You can
                                      set this to match any feature sense you
                                      wish. 0 - any sense, 1 - forward sense, -1 -
                                      reverse sense (Any integer value)
       -minscore           float      [0.0] Minimum score of feature to extract
                                      (see also maxscore) (Any numeric value)
       -maxscore           float      [0.0] Maximum score of feature to extract.
                                      If both minscore and maxscore are zero (the
                                      default), then any score is ignored (Any
                                      numeric value)
       -tag                string     [*] Tags are the types of extra values that
                                      a feature may have. For example in the EMBL
                                      feature table, a 'CDS' type of feature may
                                      have the tags '/codon', '/codon_start',
                                      '/db_xref', '/EC_number', '/evidence',
                                      '/exception', '/function', '/gene',
                                      '/label', '/map', '/note', '/number',
                                      '/partial', '/product', '/protein_id',
                                      '/pseudo', '/standard_name', '/translation',
                                      '/transl_except', '/transl_table', or
                                      '/usedin'. Some of these tags also have
                                      values, for example '/gene' can have the
                                      value of the gene name.
                                      By default any feature tag in the feature
                                      table is extracted. You can set this to
                                      match any feature tag you wish to show.
                                      The tag may be wildcarded by using '*'.
                                      If you wish to extract more than one tag,
                                      separate their names with the character '|',
                                      eg:
                                      gene | label (Any string)
       -value              string     [*] Tag values are the values associated
                                      with a feature tag. Tags are the types of
                                      extra values that a feature may have. For
                                      example in the EMBL feature table, a 'CDS'
                                      type of feature may have the tags '/codon',
                                      '/codon_start', '/db_xref', '/EC_number',
                                      '/evidence', '/exception', '/function',
                                      '/gene', '/label', '/map', '/note',
                                      '/number', '/partial', '/product',
                                      '/protein_id', '/pseudo', '/standard_name',
                                      '/translation', '/transl_except',
                                      '/transl_table', or '/usedin'. Only some of
                                      these tags can have values, for example
                                      '/gene' can have the value of the gene name.
                                      By default any feature tag value in the
                                      feature table is shown. You can set this to
                                      match any feature tag valueyou wish to show.
                                      The tag value may be wildcarded by using
                                      '*'.
                                      If you wish to show more than one tag value,
                                      separate their names with a space or the
                                      character '|', eg:
                                      pax* | 10 (Any string)
       -join               boolean    [N] Some features, such as CDS (coding
                                      sequence) and mRNA are composed of introns
                                      concatenated together. There may be other
                                      forms of 'joined' sequence, depending on the
                                      feature table. If this option is set TRUE,
                                      then any group of these features will be
                                      output as a single sequence. If the 'before'
                                      and 'after' qualifiers have been set, then
                                      only the sequence before the first feature
                                      and after the last feature are added.
       -featinname         boolean    [N] To aid you in identifying the type of
                                      feature that has been output, the type of
                                      feature is added to the start of the
                                      description of the output sequence.
                                      Sometimes the description of a sequence is
                                      lost in subsequent processing of the
                                      sequences file, so it is useful for the type
                                      to be a part of the sequence ID name. If
                                      you set this to be TRUE then the name is
                                      added to the ID name of the output sequence.
       -describe           string     To aid you in identifying some further
                                      properties of a feature that has been
                                      output, this lets you specify one or more
                                      tag names that should be added to the output
                                      sequence Description text, together with
                                      their values (if any). For example, if this
                                      is set to be 'gene', then if any output
                                      feature has the tag (for example)
                                      '/gene=BRCA1' associated with it, then the
                                      text '(gene=BRCA1)' will be added to the
                                      Description line. Tags are the types of
                                      extra values that a feature may have. For
                                      example in the EMBL feature table, a 'CDS'
                                      type of feature may have the tags '/codon',
                                      '/codon_start', '/db_xref', '/EC_number',
                                      '/evidence', '/exception', '/function',
                                      '/gene', '/label', '/map', '/note',
                                      '/number', '/partial', '/product',
                                      '/protein_id', '/pseudo', '/standard_name',
                                      '/translation', '/transl_except',
                                      '/transl_table', or '/usedin'. Some of these
                                      tags also have values, for example '/gene'
                                      can have the value of the gene name.
                                      By default no feature tag is displayed. You
                                      can set this to match any feature tag you
                                      wish to show.
                                      The tag may be wildcarded by using '*'.
                                      If you wish to extract more than one tag,
                                      separate their names with the character '|',
                                      eg:
                                      gene | label (Any string)

       Advanced (Unprompted) qualifiers: (none)
       Associated qualifiers:

       "-sequence" associated qualifiers
       -sbegin1            integer    Start of each sequence to be used
       -send1              integer    End of each sequence to be used
       -sreverse1          boolean    Reverse (if DNA)
       -sask1              boolean    Ask for begin/end/reverse
       -snucleotide1       boolean    Sequence is nucleotide
       -sprotein1          boolean    Sequence is protein
       -slower1            boolean    Make lower case
       -supper1            boolean    Make upper case
       -sformat1           string     Input sequence format
       -sdbname1           string     Database name
       -sid1               string     Entryname
       -ufo1               string     UFO features
       -fformat1           string     Features format
       -fopenfile1         string     Features file name

       "-outseq" associated qualifiers
       -osformat2          string     Output seq format
       -osextension2       string     File name extension
       -osname2            string     Base file name
       -osdirectory2       string     Output directory
       -osdbname2          string     Database name to add
       -ossingle2          boolean    Separate file for each entry
       -oufo2              string     UFO features
       -offormat2          string     Features format
       -ofname2            string     Features file name
       -ofdirectory2       string     Output directory

       General qualifiers:
       -auto               boolean    Turn off prompts
       -stdout             boolean    Write first file to standard output
       -filter             boolean    Read first file from standard input, write
                                      first file to standard output
       -options            boolean    Prompt for standard and additional values
       -debug              boolean    Write debug output to program.dbg
       -verbose            boolean    Report some/full command line options
       -help               boolean    Report command line options and exit. More
                                      information on associated and general
                                      qualifiers can be found with -help -verbose
       -warning            boolean    Report warnings
       -error              boolean    Report errors
       -fatal              boolean    Report fatal errors
       -die                boolean    Report dying program messages
       -version            boolean    Report version number and exit

Qualifier | Type | Description | Allowed values | Default
--- | --- | --- | --- | ---
Standard (Mandatory) qualifiers
[-sequence] (Parameter 1) | seqall | Sequence(s) filename and optional format, or reference (input USA) | Readable sequence(s) | Required
[-outseq] (Parameter 2) | seqout | Sequence filename and optional format (output USA) | Writeable sequence | <*>.format
Additional (Optional) qualifiers

-before

integer

If this value is greater than 0 then that number of bases or residues before the feature are included in the extracted sequence. This allows you to get the context of the feature. If this value is negative then the start of the extracted sequence will be this number of bases/residues before the end of the feature. So a value of '10' will start the extraction 10 bases/residues before the start of the sequence, and a value of '-10' will start the extraction 10 bases/residues before the end of the feature. The output sequence will be padded with 'N' or 'X' characters if the sequence starts after the required start of the extraction.

Any integer value

0

-after

integer

If this value is greater than 0 then that number of bases or residues after the feature are included in the extracted sequence. This allows you to get the context of the feature. If this value is negative then the end of the extracted sequence will be this number of bases/residues after the start of the feature. So a value of '10' will end the extraction 10 bases/residues after the end of the sequence, and a value of '-10' will end the extraction 10 bases/residues after the start of the feature. The output sequence will be padded with 'N' or 'X' characters if the sequence ends before the required end of the extraction.

Any integer value

0

-source

string

By default any feature source in the feature table is shown. You can set this to match any feature source you wish to show. The source name is usually either the name of the program that detected the feature or it is the feature table (eg: EMBL) that the feature came from. The source may be wildcarded by using '*'. If you wish to show more than one source, separate their names with the character '|', eg: gene* | embl

Any string

*

-type

string

By default every feature in the feature table is extracted. You can set this to be any feature type you wish to extract. See http://www.ebi.ac.uk/Services/WebFeat/ for a list of the EMBL feature types and see the Uniprot user manual in http://www.uniprot.org/manual/sequence_annotation for a list of the Uniprot feature types. The type may be wildcarded by using '*'. If you wish to extract more than one type, separate their names with the character '|', eg: *UTR | intron

Any string

*

-sense | integer | By default any feature type in the feature table is extracted. You can set this to match any feature sense you wish. 0 - any sense, 1 - forward sense, -1 - reverse sense | Any integer value | 0 - any sense, 1 - forward sense, -1 - reverse sense
-minscore | float | Minimum score of feature to extract (see also maxscore) | Any numeric value | 0.0
-maxscore | float | Maximum score of feature to extract. If both minscore and maxscore are zero (the default), then any score is ignored | Any numeric value | 0.0

-tag

string

Tags are the types of extra values that a feature may have. For example in the EMBL feature table, a 'CDS' type of feature may have the tags '/codon', '/codon_start', '/db_xref', '/EC_number', '/evidence', '/exception', '/function', '/gene', '/label', '/map', '/note', '/number', '/partial', '/product', '/protein_id', '/pseudo', '/standard_name', '/translation', '/transl_except', '/transl_table', or '/usedin'. Some of these tags also have values, for example '/gene' can have the value of the gene name. By default any feature tag in the feature table is extracted. You can set this to match any feature tag you wish to show. The tag may be wildcarded by using '*'. If you wish to extract more than one tag, separate their names with the character '|', eg: gene | label

Any string

*

-value

string

Tag values are the values associated with a feature tag. Tags are the types of extra values that a feature may have. For example in the EMBL feature table, a 'CDS' type of feature may have the tags '/codon', '/codon_start', '/db_xref', '/EC_number', '/evidence', '/exception', '/function', '/gene', '/label', '/map', '/note', '/number', '/partial', '/product', '/protein_id', '/pseudo', '/standard_name', '/translation', '/transl_except', '/transl_table', or '/usedin'. Only some of these tags can have values, for example '/gene' can have the value of the gene name. By default any feature tag value in the feature table is shown. You can set this to match any feature tag valueyou wish to show. The tag value may be wildcarded by using '*'. If you wish to show more than one tag value, separate their names with a space or the character '|', eg: pax* | 10

Any string

*

-join

boolean

Some features, such as CDS (coding sequence) and mRNA are composed of introns concatenated together. There may be other forms of 'joined' sequence, depending on the feature table. If this option is set TRUE, then any group of these features will be output as a single sequence. If the 'before' and 'after' qualifiers have been set, then only the sequence before the first feature and after the last feature are added.

Boolean value Yes/No

No

-featinname

boolean

To aid you in identifying the type of feature that has been output, the type of feature is added to the start of the description of the output sequence. Sometimes the description of a sequence is lost in subsequent processing of the sequences file, so it is useful for the type to be a part of the sequence ID name. If you set this to be TRUE then the name is added to the ID name of the output sequence.

Boolean value Yes/No

No

-describe

string

To aid you in identifying some further properties of a feature that has been output, this lets you specify one or more tag names that should be added to the output sequence Description text, together with their values (if any). For example, if this is set to be 'gene', then if any output feature has the tag (for example) '/gene=BRCA1' associated with it, then the text '(gene=BRCA1)' will be added to the Description line. Tags are the types of extra values that a feature may have. For example in the EMBL feature table, a 'CDS' type of feature may have the tags '/codon', '/codon_start', '/db_xref', '/EC_number', '/evidence', '/exception', '/function', '/gene', '/label', '/map', '/note', '/number', '/partial', '/product', '/protein_id', '/pseudo', '/standard_name', '/translation', '/transl_except', '/transl_table', or '/usedin'. Some of these tags also have values, for example '/gene' can have the value of the gene name. By default no feature tag is displayed. You can set this to match any feature tag you wish to show. The tag may be wildcarded by using '*'. If you wish to extract more than one tag, separate their names with the character '|', eg: gene | label

Any string

Advanced (Unprompted) qualifiers
(none)
Associated qualifiers
"-sequence" associated seqall qualifiers
-sbegin1 -sbegin_sequence | integer | Start of each sequence to be used | Any integer value | 0
-send1 -send_sequence | integer | End of each sequence to be used | Any integer value | 0
-sreverse1 -sreverse_sequence | boolean | Reverse (if DNA) | Boolean value Yes/No | N
-sask1 -sask_sequence | boolean | Ask for begin/end/reverse | Boolean value Yes/No | N
-snucleotide1 -snucleotide_sequence | boolean | Sequence is nucleotide | Boolean value Yes/No | N
-sprotein1 -sprotein_sequence | boolean | Sequence is protein | Boolean value Yes/No | N
-slower1 -slower_sequence | boolean | Make lower case | Boolean value Yes/No | N
-supper1 -supper_sequence | boolean | Make upper case | Boolean value Yes/No | N
-sformat1 -sformat_sequence | string | Input sequence format | Any string |
-sdbname1 -sdbname_sequence | string | Database name | Any string |
-sid1 -sid_sequence | string | Entryname | Any string |
-ufo1 -ufo_sequence | string | UFO features | Any string |
-fformat1 -fformat_sequence | string | Features format | Any string |
-fopenfile1 -fopenfile_sequence | string | Features file name | Any string |
"-outseq" associated seqout qualifiers
-osformat2 -osformat_outseq | string | Output seq format | Any string |
-osextension2 -osextension_outseq | string | File name extension | Any string |
-osname2 -osname_outseq | string | Base file name | Any string |
-osdirectory2 -osdirectory_outseq | string | Output directory | Any string |
-osdbname2 -osdbname_outseq | string | Database name to add | Any string |
-ossingle2 -ossingle_outseq | boolean | Separate file for each entry | Boolean value Yes/No | N
-oufo2 -oufo_outseq | string | UFO features | Any string |
-offormat2 -offormat_outseq | string | Features format | Any string |
-ofname2 -ofname_outseq | string | Features file name | Any string |
-ofdirectory2 -ofdirectory_outseq | string | Output directory | Any string |
General qualifiers
-auto | boolean | Turn off prompts | Boolean value Yes/No | N
-stdout | boolean | Write first file to standard output | Boolean value Yes/No | N
-filter | boolean | Read first file from standard input, write first file to standard output | Boolean value Yes/No | N
-options | boolean | Prompt for standard and additional values | Boolean value Yes/No | N
-debug | boolean | Write debug output to program.dbg | Boolean value Yes/No | N
-verbose | boolean | Report some/full command line options | Boolean value Yes/No | Y
-help | boolean | Report command line options and exit. More information on associated and general qualifiers can be found with -help -verbose | Boolean value Yes/No | N
-warning | boolean | Report warnings | Boolean value Yes/No | Y
-error | boolean | Report errors | Boolean value Yes/No | Y
-fatal | boolean | Report fatal errors | Boolean value Yes/No | Y
-die | boolean | Report dying program messages | Boolean value Yes/No | Y
-version | boolean | Report version number and exit | Boolean value Yes/No | N

## Input file format

extractfeat reads normal sequences with features.

Feature tables in Swissprot, EMBL, GFF, etc. format can be added using '-ufo featurefile' on the command line.

### Input files for usage example

'tembl:x65921' is a sequence entry in the example nucleic acid database 'tembl'

### Database entry: tembl:x65921

    ID   X65921; SV 1; linear; genomic DNA; STD; HUM; 2016 BP.
    XX
    AC   X65921; S45242;
    XX
    DT   13-MAY-1992 (Rel. 31, Created)
    DT   14-NOV-2006 (Rel. 89, Last updated, Version 7)
    XX
    DE   H.sapiens fau 1 gene
    XX
    KW   fau 1 gene.
    XX
    OS   Homo sapiens (human)
    OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia;
    OC   Eutheria; Euarchontoglires; Primates; Haplorrhini; Catarrhini; Hominidae;
    OC   Homo.
    XX
    RN   [1]
    RP   1-2016
    RA   Kas K.;
    RT   ;
    RL   Submitted (29-APR-1992) to the EMBL/GenBank/DDBJ databases.
    RL   K. Kas, University of Antwerp, Dept of Biochemistry T3.22,
    RL   Universiteitsplein 1, 2610 Wilrijk, BELGIUM
    XX
    RN   [2]
    RP   1-2016
    RX   DOI; 10.1016/0006-291X(92)91286-Y.
    RX   PUBMED; 1326960.
    RA   Kas K., Michiels L., Merregaert J.;
    RT   "Genomic structure and expression of the human fau gene: encoding the
    RT   ribosomal protein S30 fused to a ubiquitin-like protein";
    RL   Biochem. Biophys. Res. Commun. 187(2):927-933(1992).
    XX
    DR   GDB; 191789.
    DR   GDB; 191790.
    DR   GDB; 354872.
    DR   GDB; 4590236.
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..2016
    FT                   /organism="Homo sapiens"
    FT                   /mol_type="genomic DNA"
    FT                   /clone_lib="CML cosmid"
    FT                   /clone="15.1"
    FT                   /db_xref="taxon:9606"
    FT   mRNA            join(408..504,774..856,951..1095,1557..1612,1787..>1912)
    FT                   /gene="fau 1"
    FT   exon            408..504
    FT                   /number=1

      [Part of this file has been deleted for brevity]

    FT                   RAKRRMQYNRRFVNVVPTFGKKKGPNANS"
    FT   intron          857..950
    FT                   /number=2
    FT   exon            951..1095
    FT                   /number=3
    FT   intron          1096..1556
    FT                   /number=3
    FT   exon            1557..1612
    FT                   /number=4
    FT   intron          1613..1786
    FT                   /number=4
    FT   exon            1787..>1912
    FT                   /number=5
    FT   polyA_signal    1938..1943
    XX
    SQ   Sequence 2016 BP; 421 A; 562 C; 538 G; 495 T; 0 other;
         ctaccatttt ccctctcgat tctatatgta cactcgggac aagttctcct gatcgaaaac        60
         ggcaaaacta aggccccaag taggaatgcc ttagttttcg gggttaacaa tgattaacac       120
         tgagcctcac acccacgcga tgccctcagc tcctcgctca gcgctctcac caacagccgt       180
         agcccgcagc cccgctggac accggttctc catccccgca gcgtagcccg gaacatggta       240
         gctgccatct ttacctgcta cgccagcctt ctgtgcgcgc aactgtctgg tcccgccccg       300
         tcctgcgcga gctgctgccc aggcaggttc gccggtgcga gcgtaaaggg gcggagctag       360
         gactgccttg ggcggtacaa atagcaggga accgcgcggt cgctcagcag tgacgtgaca       420
         cgcagcccac ggtctgtact gacgcgccct cgcttcttcc tctttctcga ctccatcttc       480
         gcggtagctg ggaccgccgt tcaggtaaga atggggcctt ggctggatcc gaagggcttg       540
         tagcaggttg gctgcggggt cagaaggcgc ggggggaacc gaagaacggg gcctgctccg       600
         tggccctgct ccagtcccta tccgaactcc ttgggaggca ctggccttcc gcacgtgagc       660
         cgccgcgacc accatcccgt cgcgatcgtt tctggaccgc tttccactcc caaatctcct       720
         ttatcccaga gcatttcttg gcttctctta caagccgtct tttctttact cagtcgccaa       780
         tatgcagctc tttgtccgcg cccaggagct acacaccttc gaggtgaccg gccaggaaac       840
         ggtcgcccag atcaaggtaa ggctgcttgg tgcgccctgg gttccatttt cttgtgctct       900
         tcactctcgc ggcccgaggg aacgcttacg agccttatct ttccctgtag gctcatgtag       960
         cctcactgga gggcattgcc ccggaagatc aagtcgtgct cctggcaggc gcgcccctgg      1020
         aggatgaggc cactctgggc cagtgcgggg tggaggccct gactaccctg gaagtagcag      1080
         gccgcatgct tggaggtgag tgagagagga atgttctttg aagtaccggt aagcgtctag      1140
         tgagtgtggg gtgcatagtc ctgacagctg agtgtcacac ctatggtaat agagtacttc      1200
         tcactgtctt cagttcagag tgattcttcc tgtttacatc cctcatgttg aacacagacg      1260
         tccatgggag actgagccag agtgtagttg tatttcagtc acatcacgag atcctagtct      1320
         ggttatcagc ttccacacta aaaattaggt cagaccaggc cccaaagtgc tctataaatt      1380
         agaagctgga agatcctgaa atgaaactta agatttcaag gtcaaatatc tgcaactttg      1440
         ttctcattac ctattgggcg cagcttctct ttaaaggctt gaattgagaa aagaggggtt      1500
         ctgctgggtg gcaccttctt gctcttacct gctggtgcct tcctttccca ctacaggtaa      1560
         agtccatggt tccctggccc gtgctggaaa agtgagaggt cagactccta aggtgagtga      1620
         gagtattagt ggtcatggtg ttaggacttt ttttcctttc acagctaaac caagtccctg      1680
         ggctcttact cggtttgcct tctccctccc tggagatgag cctgagggaa gggatgctag      1740
         gtgtggaaga caggaaccag ggcctgatta accttccctt ctccaggtgg ccaaacagga      1800
         gaagaagaag aagaagacag gtcgggctaa gcggcggatg cagtacaacc ggcgctttgt      1860
         caacgttgtg cccacctttg gcaagaagaa gggccccaat gccaactctt aagtcttttg      1920
         taattctggc tttctctaat aaaaaagcca cttagttcag tcatcgcatt gtttcatctt      1980
         tacttgcaag gcctcaggga gaggtgtgct tctcgg                                2016
    //

## Output file format

### Output files for usage example

### File: x65921.fasta

    >X65921_408_504 [exon] H.sapiens fau 1 gene
    cagtgacgtgacacgcagcccacggtctgtactgacgcgccctcgcttcttcctctttct
    cgactccatcttcgcggtagctgggaccgccgttcag
    >X65921_774_856 [exon] H.sapiens fau 1 gene
    tcgccaatatgcagctctttgtccgcgcccaggagctacacaccttcgaggtgaccggcc
    aggaaacggtcgcccagatcaag
    >X65921_951_1095 [exon] H.sapiens fau 1 gene
    gctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgctcctggcaggc
    gcgcccctggaggatgaggccactctgggccagtgcggggtggaggccctgactaccctg
    gaagtagcaggccgcatgcttggag
    >X65921_1557_1612 [exon] H.sapiens fau 1 gene
    gtaaagtccatggttccctggcccgtgctggaaaagtgagaggtcagactcctaag
    >X65921_1787_1912 [exon] H.sapiens fau 1 gene
    gtggccaaacaggagaagaagaagaagaagacaggtcgggctaagcggcggatgcagtac
    aaccggcgctttgtcaacgttgtgcccacctttggcaagaagaagggccccaatgccaac
    tcttaa

### Output files for usage example 2

### File: x65921.fasta

    >X65921_408_504 [exon] H.sapiens fau 1 gene
    ggtcgctcagcagtgacgtgacacgcagcccacggtctgtactgacgcgccctcgcttct
    tcctctttctcgactccatcttcgcggtagctgggaccgccgttcaggtaagaatgg
    >X65921_774_856 [exon] H.sapiens fau 1 gene
    ctttactcagtcgccaatatgcagctctttgtccgcgcccaggagctacacaccttcgag
    gtgaccggccaggaaacggtcgcccagatcaaggtaaggctgc
    >X65921_951_1095 [exon] H.sapiens fau 1 gene
    ttccctgtaggctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgct
    cctggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggaggccct
    gactaccctggaagtagcaggccgcatgcttggaggtgagtgaga
    >X65921_1557_1612 [exon] H.sapiens fau 1 gene
    cccactacaggtaaagtccatggttccctggcccgtgctggaaaagtgagaggtcagact
    cctaaggtgagtgaga
    >X65921_1787_1912 [exon] H.sapiens fau 1 gene
    ccttctccaggtggccaaacaggagaagaagaagaagaagacaggtcgggctaagcggcg
    gatgcagtacaaccggcgctttgtcaacgttgtgcccacctttggcaagaagaagggccc
    caatgccaactcttaagtcttttgta

### Output files for usage example 3

### File: h45989.fasta

    >X65921_408_504 [exon] H.sapiens fau 1 gene
    ctcagcagtg
    >X65921_774_856 [exon] H.sapiens fau 1 gene
    ctcagtcgcc
    >X65921_951_1095 [exon] H.sapiens fau 1 gene
    tgtaggctca
    >X65921_1557_1612 [exon] H.sapiens fau 1 gene
    tacaggtaaa
    >X65921_1787_1912 [exon] H.sapiens fau 1 gene
    tccaggtggc
    >K00650_889_1029 [exon] Human fos proto-oncogene (c-fos), complete cds.
    ccacgatgat
    >K00650_1783_2034 [exon] Human fos proto-oncogene (c-fos), complete cds.
    tctaggactt
    >K00650_2466_2573 [exon] Human fos proto-oncogene (c-fos), complete cds.
    tctagttatc
    >K00650_2688_3329 [exon] Human fos proto-oncogene (c-fos), complete cds.
    tacaggagac
    >D00596_1001_1205 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    gcgccatgcc
    >D00596_2895_2968 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    ttcagatgaa
    >D00596_5396_5570 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    tccagggatc
    >D00596_11843_11944 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    tacagattat
    >D00596_13449_13624 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    ctcagatctt
    >D00596_14133_14204 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    tatagccagg
    >D00596_15613_15750 [exon] Homo sapiens gene for thymidylate synthase, complete cds.
    tttagcttca
    >AB009071_67_155 [exon] Homo sapiens HERG gene, complete cds.
    cccgcccatg
    >AB009071_356_586 [exon] Homo sapiens HERG gene, complete cds.
    cctaggccgt
    >AB009071_768_932 [exon] Homo sapiens HERG gene, complete cds.
    tgcagggagc
    >AB009071_1137_1580 [exon] Homo sapiens HERG gene, complete cds.
    cgcaggccgc
    >AB009071_1742_1953 [exon] Homo sapiens HERG gene, complete cds.
    cctaggggcc
    >AB009071_2168_2596 [exon] Homo sapiens HERG gene, complete cds.
    tgcaggtcct
    >AB009071_2765_3152 [exon] Homo sapiens HERG gene, complete cds.
    cccagctgat
    >AB009071_3332_3531 [exon] Homo sapiens HERG gene, complete cds.
    cccagccctc
    >AB009071_3716_3968 [exon] Homo sapiens HERG gene, complete cds.
    cccaggtgct

      [Part of this file has been deleted for brevity]

    aacagctcct
    >U01317_39414_39558 [exon] Human beta globin region on chromosome 11.
    tccacacact
    >U01317_39681_39903 [exon] Human beta globin region on chromosome 11.
    cacaggctcc
    >U01317_40770_40985 [exon] Human beta globin region on chromosome 11.
    aacagctcct
    >U01317_45710_45800 [exon] Human beta globin region on chromosome 11.
    acactgtagt
    >U01317_45922_46145 [exon] Human beta globin region on chromosome 11.
    cacagtctcc
    >U01317_46997_47124 [exon] Human beta globin region on chromosome 11.
    cccagctctt
    >U01317_54740_54881 [exon] Human beta globin region on chromosome 11.
    tgcttacact
    >U01317_55010_55232 [exon] Human beta globin region on chromosome 11.
    ctcagattac
    >U01317_56131_56389 [exon] Human beta globin region on chromosome 11.
    cgcagctctt
    >U01317_62137_62278 [exon] Human beta globin region on chromosome 11.
    tgcttacatt
    >U01317_62187_62278 [exon] Human beta globin region on chromosome 11.
    acaccatggt
    >U01317_62390_62408 [exon] Human beta globin region on chromosome 11.
    attggtctat
    >U01317_62409_62631 [exon] Human beta globin region on chromosome 11.
    cttaggctgc
    >U01317_63482_63742 [exon] Human beta globin region on chromosome 11.
    cacagctcct
    >M23100_1541_1923 [exon] Human insulin receptor (INSR) gene, exon 1, clones lambda-hINSR-(1-13).
    ctccgggccc
    >M23100_1542_1923 [exon] Human insulin receptor (INSR) gene, exon 1, clones lambda-hINSR-(1-13).
    tccgggcccc
    >M23100_1548_1923 [exon] Human insulin receptor (INSR) gene, exon 1, clones lambda-hINSR-(1-13).
    ccccgagatc
    >V00451_363_460 [exon] Glycine max leghemoglobin gene or pseudogene (no mRNA detected).
    gaaatatggg
    >V00451_555_663 [exon] Glycine max leghemoglobin gene or pseudogene (no mRNA detected).
    aataggatat
    >V00451_2182_2286 [exon] Glycine max leghemoglobin gene or pseudogene (no mRNA detected).
    tgtaggtgcg
    >V00451_3065_3208 [exon] Glycine max leghemoglobin gene or pseudogene (no mRNA detected).
    cgtaggtggt
    >M11903_351_499 [exon] Rattus norvegicus androgen-responsive protein precursor (Svf) gene, exons 1 and 1A, alternatively spliced.
    cctgtaggca
    >M11903_401_499 [exon] Rattus norvegicus androgen-responsive protein precursor (Svf) gene, exons 1 and 1A, alternatively spliced.
    gctctcagtc
    >M11904_109_445 [exon] Rattus norvegicus androgen-responsive protein precursor (Svf) gene, exon 2 and complete cds.
    aacagaaaaa
    >M11905_233_420 [exon] Rattus norvegicus androgen-responsive protein precursor (Svf) gene, exon 3.
    cacaggttgt

### Output files for usage example 4

### File: x65921.fasta

    >X65921_782_1912 [CDS] H.sapiens fau 1 gene
    atgcagctctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacg
    gtcgcccagatcaaggctcatgtagcctcactggagggcattgccccggaagatcaagtc
    gtgctcctggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggag
    gccctgactaccctggaagtagcaggccgcatgcttggaggtaaagtccatggttccctg
    gcccgtgctggaaaagtgagaggtcagactcctaaggtggccaaacaggagaagaagaag
    aagaagacaggtcgggctaagcggcggatgcagtacaaccggcgctttgtcaacgttgtg
    cccacctttggcaagaagaagggccccaatgccaactcttaa

### Output files for usage example 5

### File: 12s1_arath.fasta

    >AQP1_HUMAN_247_247 [protein_modification_categorized_by_chemical_process] Aquaporin-1 (AQP-1) (Aquaporin-CHIP) (Water channel protein for red blood cells and kidney proximal tubule) (Urine water channel)
    VWTSGQV
    >AQP1_HUMAN_262_262 [protein_modification_categorized_by_chemical_process] Aquaporin-1 (AQP-1) (Aquaporin-CHIP) (Water channel protein for red blood cells and kidney proximal tubule) (Urine water channel)
    DINSRVE
    >GCN4_YEAST_17_17 [protein_modification_categorized_by_chemical_process] General control protein GCN4 (Amino acid biosynthesis regulatory protein)
    MGFSPLD
    >GCN4_YEAST_218_218 [protein_modification_categorized_by_chemical_process] General control protein GCN4 (Amino acid biosynthesis regulatory protein)
    IPLSPIV
    >OPSD_HUMAN_334_334 [protein_modification_categorized_by_chemical_process] Rhodopsin (Opsin-2)
    DEASATV
    >OPSD_HUMAN_338_338 [protein_modification_categorized_by_chemical_process] Rhodopsin (Opsin-2)
    ATVSKTE
    >OPSD_HUMAN_343_343 [protein_modification_categorized_by_chemical_process] Rhodopsin (Opsin-2)
    TETSQVA
    >PAXI_HUMAN_83_83 [protein_modification_categorized_by_chemical_process] Paxillin
    QPQSSSP
    >PAXI_HUMAN_85_85 [protein_modification_categorized_by_chemical_process] Paxillin
    QSSSPVY
    >PAXI_HUMAN_106_106 [protein_modification_categorized_by_chemical_process] Paxillin
    SVGSPCS
    >PAXI_HUMAN_109_109 [protein_modification_categorized_by_chemical_process] Paxillin
    SPCSRVG
    >PAXI_HUMAN_126_126 [protein_modification_categorized_by_chemical_process] Paxillin
    KQKSAEP
    >PAXI_HUMAN_130_130 [protein_modification_categorized_by_chemical_process] Paxillin
    AEPSPTV
    >PAXI_HUMAN_137_137 [protein_modification_categorized_by_chemical_process] Paxillin
    MSTSLGS
    >PAXI_HUMAN_303_303 [protein_modification_categorized_by_chemical_process] Paxillin
    GRSSPGG
    >UBR5_RAT_193_193 [protein_modification_categorized_by_chemical_process] E3 ubiquitin-protein ligase UBR5 (6.3.2.-) (E3 ubiquitin-protein ligase, HECT domain-containing 1) (Hyperplastic discs protein homolog) (100 kDa protein) (Fragment)
    GRPSQGL
    >UBR5_RAT_607_607 [protein_modification_categorized_by_chemical_process] E3 ubiquitin-protein ligase UBR5 (6.3.2.-) (E3 ubiquitin-protein ligase, HECT domain-containing 1) (Hyperplastic discs protein homolog) (100 kDa protein) (Fragment)
    SSRSVVD

The sequences of the specified features are written out.

The ID name of the sequence is formed from the original sequence name with the start and end positions of the feature appended to it. So if the feature came from a sequence with an ID name of 'XYZ' from positions 10 to 22, then the resulting ID name of the feature sequence will be 'XYZ_10_22'

The name of the type of feature is added to the start of the description of the sequence in brackets, e.g.: '[exon]'.

The sequence is written out as a normal sequence.

If the feature is in the reverse sense of a nucleic acid sequence, then it is reverse-complemented before being written.

## Data files

None.

## Notes

Bear in mind that database annotation cannot always be trusted to be reliable. If you rely upon annotation written by other people or another program and do not independently verify such annotation, then there is a chance that some of the reported features will be erreneous.

### Controlling the output

There are many options to control exactly what parts of the feature table are written to file.

By default every feature in the feature table is extracted. `-type` will set the specific feature type to extract. See http://www.ebi.ac.uk/Services/WebFeat/ for a list of the EMBL feature types and see Appendix A of the Swissprot user manual in http://www.uniprot.org/manual/sequence_annotation for a list of the Swissprot feature types.

By default any feature tag in the feature table is extracted. `-tag` specifies a feature tag reuired in any feature extracted. Tags are the types of extra values that a feature may have. For example in the EMBL feature table, a 'CDS' type of feature may have the tags `/codon`, `/codon_start`, `/db_xref`, `/EC_number`, `/evidence`, `/exception`, `/function`, `/gene`, `/label`, `/map`, `/note`, `/number`, `/partial`, `/product`, `/protein_id`,`/pseudo`, `/standard_name`, `/translation`, `/transl_except`, `/transl_table`, or `/usedin`. Some of these tags also have values, for example `/gene` can have the value of the gene name.

By default any feature tag value in the feature table is shown. You can set this using `-tag` to match any specific feature tag value you wish to show. Tag values are the values associated with a feature tag, for example `/gene` can have the value of the gene name. Bear in mind only some of these tags can have values.

By default any feature source in the feature table is shown. `-source` is used to set this to match a specific feature source.

By default features in either sense are extracted. The -sense option specifies a particular sense.

The minimum and maximum score of features to be reported may be specified with -minscore and -maxscore.

To aid you in identifying the type of feature that has been output, the type of feature is added to the start of the description of the output sequence. Sometimes the description of a sequence is lost in subsequent processing of the sequences file, so it is useful for the type to be a part of the output sequence ID name. The -featinname option specifies this behaviour.

To aid you in identifying the properties of a feature that has been output, -describe specifies one or more tag names that will be added to the output sequence "Description" text, together with their values (if any). For example, if this is set to be `gene`, then if any output feature has the tag (for example) `/gene=BRCA1` associated with it, then the text `(gene=BRCA1)` will be added to the Description line. By default no feature tag is given in the "Description" text. You can set -describe to specify any feature tag you wish to show.

### "Joined" features

Some features, such as CDS (coding sequence) and mRNA are composed of introns concatenated together. There may be other forms of 'joined' sequence, depending on the feature table. By default, 'joined' features are extracted as individual sequences. If the -join option is specified, then any group of these features will be output as a single sequence. If the `-before` and `-after` qualifiers have been set, then only the sequence before the first feature and after the last feature are added.

## References

None.

## Warnings

## Diagnostic Error Messages

If the end position of the sequence to be written is less than the start position, then the warning message "Extraction region end less than start for feature type [start-end] in ID name" is written and no sequence is output.

## Exit status

It always exits with status 0.

## Known bugs

None.

## See also

Program name | Description
--- | ---
aligncopy | Reads and writes alignments
aligncopypair | Reads and writes pairs from alignments
biosed | Replace or delete sequence sections
codcopy | Copy and reformat a codon usage table
coderet | Extract CDS, mRNA and translations from feature tables
cutseq | Removes a section from a sequence
degapseq | Removes non-alphabetic (e.g. gap) characters from sequences
descseq | Alter the name or description of a sequence
entret | Retrieves sequence entries from flatfile databases and files
extractalign | Extract regions from a sequence alignment
extractseq | Extract regions from a sequence
featcopy | Reads and writes a feature table
featreport | Reads and writes a feature table
listor | Write a list file of the logical OR of two sets of sequences
makenucseq | Create random nucleotide sequences
makeprotseq | Create random protein sequences
maskambignuc | Masks all ambiguity characters in nucleotide sequences with N
maskambigprot | Masks all ambiguity characters in protein sequences with X
maskfeat | Write a sequence with masked features
maskseq | Write a sequence with masked regions
newseq | Create a sequence file from a typed-in sequence
nohtml | Remove mark-up (e.g. HTML tags) from an ASCII text file
noreturn | Remove carriage return from ASCII files
nospace | Remove all whitespace from an ASCII text file
notab | Replace tabs with spaces in an ASCII text file
notseq | Write to file a subset of an input stream of sequences
nthseq | Write to file a single sequence from an input stream of sequences
nthseqset | Reads and writes (returns) one set of sequences from many
pasteseq | Insert one sequence into another
revseq | Reverse and complement a nucleotide sequence
seqret | Reads and writes (returns) sequences
seqretsetall | Reads and writes (returns) many sets of sequences
seqretsplit | Reads sequences and writes them to individual files
showfeat | Display features of a sequence in pretty format
sizeseq | Sort sequences by size
skipredundant | Remove redundant sequences from an input set
skipseq | Reads and writes (returns) sequences, skipping first few
splitsource | Split sequence(s) into original source sequences
splitter | Split sequence(s) into smaller sequences
trimest | Remove poly-A tails from nucleotide sequences
trimseq | Remove unwanted characters from start and end of sequence(s)
trimspace | Remove extra whitespace from an ASCII text file
twofeat | Finds neighbouring pairs of features in sequence(s)
union | Concatenate multiple sequences into a single sequence
vectorstrip | Removes vectors from the ends of nucleotide sequence(s)
yank | Add a sequence reference (a full USA) to a list file

## Author(s)

Gary Williams (gwilliam © rfcgr.mrc.ac.uk)
MRC Rosalind Franklin Centre for Genomics Research Wellcome Trust Genome Campus, Hinxton, Cambridge, CB10 1SB, UK

## History

Written (Dec 12 2001) - Gary Williams

Added '-join' parameter (June 2002) - Gary Williams

## Target users

This program is intended to be used by everyone and everything, from naive users to embedded scripts.

## Comments

None