| twofeat

## 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

Find neighbouring pairs of features in sequence(s)

## Description

twofeat finds neighbouring pairs of specified features in one or more input sequences. Each feature may be specified by type, name, sense, score, tag/value pairs etc. Their relationship, e.g. their sequence separation or overlap, relative sense and order may also be specified. It writes a standard EMBOSS report file with any such feature pairs identified. By default each pair is written as a single feature but (optionally) they are written in their original form.

## Algorithm

For each of the pair of features, you can specify its type name, its sense, its score and any tag/value pairs, amongst other things.

You can then specify the type of relationship that the two features should have as follows:

Minimum and maximum distance between each feature.

Distance measurement (measure from the nearest ends of the two features, from the left ends, from right ends, from the furthest ends.)

Type of overlap (any type of overlap or no overlap is allowed, Overlap required, No overlaps are allowed, Overlap required but one feature must not be completely within the other, Feature A must be completely enclosed within feature B, Feature B must be completely enclosed within feature A).

Feature sense (any sense, in the same sense or in opposite senses)

Feature order (any order, Feature A then feature B, Feature B then feature A)

The program proceeds as follows. For eachs sequence: Identify the features that match the criteria for Feature A Identify the features that match the criteria for Feature B Compare all pairs of features If they satisfy the requirements output them to the report file

By default the resulting pairs of features found are then written to a report file as a single feature from the first postion of the left-most feature to the last position of the right-most feature. You can modify the output to report the pairs of features with no changes made to them.

## Usage

Here is a sample session with twofeat

Without the -twoout option the output report contains just one feature for every pair of features found.

    % twofeat tembl:x65923
    Find neighbouring pairs of features in sequence(s)
    Type of first feature [*]: polyA_signal
    Type of second feature [*]: polyA_site
    The minimum distance between the features [0]: 10
    The maximum distance between the features [0]: 50
    Output report [x65923.twofeat]:

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

Example 2

The -twoout option makes the output report give the pairs of features found. The output report format type has been changed to display the full original pairs of features in GFF format.

    % twofeat -twoout -rformat gff tembl:x65923
    Find neighbouring pairs of features in sequence(s)
    Type of first feature [*]: polyA_signal
    Type of second feature [*]: polyA_site
    The minimum distance between the features [0]: 10
    The maximum distance between the features [0]: 50
    Output report [x65923.twofeat]:

Go to the output files for this example

## Command line arguments

    Find neighbouring pairs of features in sequence(s)
    Version: EMBOSS:6.6.0.0

       Standard (Mandatory) qualifiers:
      [-sequence]          seqall     Sequence(s) filename and optional format, or
                                      reference (input USA)
       -atype              string     [*] By default every feature in the feature
                                      table is allowed. You can set this to be any
                                      feature type you wish to allow.
                                      See http://www.ebi.ac.uk/embl/WebFeat/ for a
                                      list of the EMBL feature types and see
                                      Appendix A of the Swissprot user manual in
                                      http://www.expasy.org/sprot/userman.html for
                                      a list of the Swissprot feature types.
                                      The type may be wildcarded by using '*'.
                                      If you wish to allow more than one type,
                                      separate their names with the character '|',
                                      eg:
                                      *UTR | intron (Any string)
       -btype              string     [*] By default every feature in the feature
                                      table is allowed. You can set this to be any
                                      feature type you wish to allow.
                                      See http://www.ebi.ac.uk/embl/WebFeat/ for a
                                      list of the EMBL feature types and see
                                      Appendix A of the Swissprot user manual in
                                      http://www.expasy.org/sprot/userman.html for
                                      a list of the Swissprot feature types.
                                      The type may be wildcarded by using '*'.
                                      If you wish to allow more than one type,
                                      separate their names with the character '|',
                                      eg:
                                      *UTR | intron (Any string)
       -minrange           integer    [0] If this is greater or equal to
                                      'maxrange', then no min or max range is
                                      specified (Any integer value)
       -maxrange           integer    [0] If this is less than or equal to
                                      'minrange', then no min or max range is
                                      specified (Any integer value)
      [-outfile]           report     [*.twofeat] Output report file name (default
                                      -rformat table)

       Additional (Optional) qualifiers (* if not always prompted):
       -asource            string     [*] By default any feature source in the
                                      feature table is allowed. You can set this
                                      to match any feature source you wish to
                                      allow.
                                      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 allow more than one source,
                                      separate their names with the character '|',
                                      eg:
                                      gene* | embl (Any string)
       -asense             menu       [0] By default any feature sense is allowed.
                                      You can set this to match the required
                                      sense. (Values: 0 (Any sense); + (Forward
                                      sense); - (Reverse sense))
       -aminscore          float      [0.0] If this is greater than or equal to
                                      the maximum score, then any score is
                                      allowed. (Any numeric value)
       -amaxscore          float      [0.0] If this is less than or equal to the
                                      maximum score, then any score is permitted.
                                      (Any numeric value)
       -atag               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 allowed. You can set this to match
                                      any feature tag you wish to allow.
                                      The tag may be wildcarded by using '*'.
                                      If you wish to allow more than one tag,
                                      separate their names with the character '|',
                                      eg:
                                      gene | label (Any string)
       -avalue             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 allowed. You can set this
                                      to match any feature tag value you wish to
                                      allow.
                                      The tag value may be wildcarded by using
                                      '*'.
                                      If you wish to allow more than one tag
                                      value, separate their names with the
                                      character '|', eg:
                                      pax* | 10 (Any string)
       -bsource            string     [*] By default any feature source in the
                                      feature table is allowed. You can set this
                                      to match any feature source you wish to
                                      allow.
                                      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 allow more than one source,
                                      separate their names with the character '|',
                                      eg:
                                      gene* | embl (Any string)
       -bsense             menu       [0] By default any feature sense is allowed.
                                      You can set this to match the required
                                      sense. (Values: 0 (Any sense); + (Forward
                                      sense); - (Reverse sense))
       -bminscore          float      [0.0] If this is greater than or equal to
                                      the maximum score, then any score is
                                      allowed. (Any numeric value)
       -bmaxscore          float      [0.0] If this is less than or equal to the
                                      maximum score, then any score is permitted.
                                      (Any numeric value)
       -btag               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 allowed. You can set this to match
                                      any feature tag you wish to allow.
                                      The tag may be wildcarded by using '*'.
                                      If you wish to allow more than one tag,
                                      separate their names with the character '|',
                                      eg:
                                      gene | label (Any string)
       -bvalue             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 allowed. You can set this
                                      to match any feature tag value you wish to
                                      allow.
                                      The tag value may be wildcarded by using
                                      '*'.
                                      If you wish to allow more than one tag
                                      value, separate their names with the
                                      character '|', eg:
                                      pax* | 10 (Any string)
       -overlap            menu       [A] This allows you to specify the allowed
                                      overlaps of the features A and B.
                                      You can allow any or no overlaps, specify
                                      that they must or must not overlap, that one
                                      must or must not be wholly enclosed within
                                      another feature. (Values: A (Any); O
                                      (Overlap required); NO (No overlaps are
                                      allowed); NW (Overlap required but not
                                      within); AW (A must be all within B); BW (B
                                      must be all within A))
       -rangetype          menu       [N] This allows you to specify the positions
                                      from which the allowed minimum or maximum
                                      distance between the features is measured
                                      (Values: N (From nearest ends); L (From left
                                      ends); R (From right ends); F (From
                                      furthest ends))
       -sense              menu       [A] This allows you to specify the required
                                      sense that the two features must be on. This
                                      is ignored (always 'Any') when looking at
                                      protein sequence features. (Values: A (Any
                                      sense); S (Same sense); O (Opposite sense))
       -order              menu       [A] This allows you to specify the required
                                      order of the two features. The order is
                                      measured from the start positions of the
                                      features. This criterion is always applied
                                      despite the specified overlap type required.
                                      (Values: A (Any); AB (Feature A then
                                      feature B); BA (Feature B then feature A))
       -twoout             toggle     [N] If you set this to be true, then the two
                                      features themselves will be written out. If
                                      it is left as false, then a single feature
                                      will be written out covering the two
                                      features you found.
    *  -typeout            string     [misc_feature] If you have specified that
                                      the pairs of features that are found should
                                      be reported as one feature in the ouput,
                                      then you can specify the 'type' name of the
                                      new feature here. By default every feature
                                      in the feature table is allowed. See
                                      http://www.ebi.ac.uk/embl/WebFeat/ for a
                                      list of the EMBL feature types and see
                                      Appendix A of the Swissprot user manual in
                                      http://www.expasy.org/sprot/userman.html for
                                      a list of the Swissprot feature types. If
                                      you specify an invalid feature type name,
                                      then the default name 'misc_feature' is
                                      used. (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
       -scircular1         boolean    Sequence is circular
       -squick1            boolean    Read id and sequence only
       -sformat1           string     Input sequence format
       -iquery1            string     Input query fields or ID list
       -ioffset1           integer    Input start position offset
       -sdbname1           string     Database name
       -sid1               string     Entryname
       -ufo1               string     UFO features
       -fformat1           string     Features format
       -fopenfile1         string     Features file name

       "-outfile" associated qualifiers
       -rformat2           string     Report format
       -rname2             string     Base file name
       -rextension2        string     File name extension
       -rdirectory2        string     Output directory
       -raccshow2          boolean    Show accession number in the report
       -rdesshow2          boolean    Show description in the report
       -rscoreshow2        boolean    Show the score in the report
       -rstrandshow2       boolean    Show the nucleotide strand in the report
       -rusashow2          boolean    Show the full USA in the report
       -rmaxall2           integer    Maximum total hits to report
       -rmaxseq2           integer    Maximum hits to report for one sequence

       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
-atype | string | By default every feature in the feature table is allowed. You can set this to be any feature type you wish to allow. See http://www.ebi.ac.uk/embl/WebFeat/ for a list of the EMBL feature types and see Appendix A of the Swissprot user manual in http://www.expasy.org/sprot/userman.html for a list of the Swissprot feature types. The type may be wildcarded by using '*'. If you wish to allow more than one type, separate their names with the character '|', eg: *UTR | intron | Any string | *
-btype | string | By default every feature in the feature table is allowed. You can set this to be any feature type you wish to allow. See http://www.ebi.ac.uk/embl/WebFeat/ for a list of the EMBL feature types and see Appendix A of the Swissprot user manual in http://www.expasy.org/sprot/userman.html for a list of the Swissprot feature types. The type may be wildcarded by using '*'. If you wish to allow more than one type, separate their names with the character '|', eg: *UTR | intron | Any string | *
-minrange | integer | If this is greater or equal to 'maxrange', then no min or max range is specified | Any integer value | 0
-maxrange | integer | If this is less than or equal to 'minrange', then no min or max range is specified | Any integer value | 0
[-outfile] (Parameter 2) | report | Output report file name | (default -rformat table) | <*>.twofeat
Additional (Optional) qualifiers
-asource | string | By default any feature source in the feature table is allowed. You can set this to match any feature source you wish to allow. 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 allow more than one source, separate their names with the character '|', eg: gene* | embl | Any string | *
-asense | list | By default any feature sense is allowed. You can set this to match the required sense. |
0 | (Any sense)
+ | (Forward sense)
- | (Reverse sense)
| 0
-aminscore | float | If this is greater than or equal to the maximum score, then any score is allowed. | Any numeric value | 0.0
-amaxscore | float | If this is less than or equal to the maximum score, then any score is permitted. | Any numeric value | 0.0
-atag | 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 allowed. You can set this to match any feature tag you wish to allow. The tag may be wildcarded by using '*'. If you wish to allow more than one tag, separate their names with the character '|', eg: gene | label | Any string | *
-avalue | 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 allowed. You can set this to match any feature tag value you wish to allow. The tag value may be wildcarded by using '*'. If you wish to allow more than one tag value, separate their names with the character '|', eg: pax* | 10 | Any string | *
-bsource | string | By default any feature source in the feature table is allowed. You can set this to match any feature source you wish to allow. 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 allow more than one source, separate their names with the character '|', eg: gene* | embl | Any string | *
-bsense | list | By default any feature sense is allowed. You can set this to match the required sense. |
0 | (Any sense)
+ | (Forward sense)
- | (Reverse sense)
| 0
-bminscore | float | If this is greater than or equal to the maximum score, then any score is allowed. | Any numeric value | 0.0
-bmaxscore | float | If this is less than or equal to the maximum score, then any score is permitted. | Any numeric value | 0.0
-btag | 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 allowed. You can set this to match any feature tag you wish to allow. The tag may be wildcarded by using '*'. If you wish to allow more than one tag, separate their names with the character '|', eg: gene | label | Any string | *
-bvalue | 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 allowed. You can set this to match any feature tag value you wish to allow. The tag value may be wildcarded by using '*'. If you wish to allow more than one tag value, separate their names with the character '|', eg: pax* | 10 | Any string | *
-overlap | list | This allows you to specify the allowed overlaps of the features A and B. You can allow any or no overlaps, specify that they must or must not overlap, that one must or must not be wholly enclosed within another feature. |
A | (Any)
O | (Overlap required)
NO | (No overlaps are allowed)
NW | (Overlap required but not within)
AW | (A must be all within B)
BW | (B must be all within A)
| A
-rangetype | list | This allows you to specify the positions from which the allowed minimum or maximum distance between the features is measured |
N | (From nearest ends)
L | (From left ends)
R | (From right ends)
F | (From furthest ends)
| N
-sense | list | This allows you to specify the required sense that the two features must be on. This is ignored (always 'Any') when looking at protein sequence features. |
A | (Any sense)
S | (Same sense)
O | (Opposite sense)
| A
-order | list | This allows you to specify the required order of the two features. The order is measured from the start positions of the features. This criterion is always applied despite the specified overlap type required. |
A | (Any)
AB | (Feature A then feature B)
BA | (Feature B then feature A)
| A
-twoout | toggle | If you set this to be true, then the two features themselves will be written out. If it is left as false, then a single feature will be written out covering the two features you found. | Toggle value Yes/No | No
-typeout | string | If you have specified that the pairs of features that are found should be reported as one feature in the ouput, then you can specify the 'type' name of the new feature here. By default every feature in the feature table is allowed. See http://www.ebi.ac.uk/embl/WebFeat/ for a list of the EMBL feature types and see Appendix A of the Swissprot user manual in http://www.expasy.org/sprot/userman.html for a list of the Swissprot feature types. If you specify an invalid feature type name, then the default name 'misc_feature' is used. | Any string | misc_feature
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
-scircular1 -scircular_sequence | boolean | Sequence is circular | Boolean value Yes/No | N
-squick1 -squick_sequence | boolean | Read id and sequence only | Boolean value Yes/No | N
-sformat1 -sformat_sequence | string | Input sequence format | Any string |
-iquery1 -iquery_sequence | string | Input query fields or ID list | Any string |
-ioffset1 -ioffset_sequence | integer | Input start position offset | Any integer value | 0
-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 |
"-outfile" associated report qualifiers
-rformat2 -rformat_outfile | string | Report format | Any string | table
-rname2 -rname_outfile | string | Base file name | Any string |
-rextension2 -rextension_outfile | string | File name extension | Any string |
-rdirectory2 -rdirectory_outfile | string | Output directory | Any string |
-raccshow2 -raccshow_outfile | boolean | Show accession number in the report | Boolean value Yes/No | N
-rdesshow2 -rdesshow_outfile | boolean | Show description in the report | Boolean value Yes/No | N
-rscoreshow2 -rscoreshow_outfile | boolean | Show the score in the report | Boolean value Yes/No | Y
-rstrandshow2 -rstrandshow_outfile | boolean | Show the nucleotide strand in the report | Boolean value Yes/No | Y
-rusashow2 -rusashow_outfile | boolean | Show the full USA in the report | Boolean value Yes/No | N
-rmaxall2 -rmaxall_outfile | integer | Maximum total hits to report | Any integer value | 0
-rmaxseq2 -rmaxseq_outfile | integer | Maximum hits to report for one sequence | Any integer value | 0
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

The input is a standard EMBOSS sequence query (also known as a 'USA') with associated feature information.

Major sequence database sources defined as standard in EMBOSS installations include srs:embl, srs:uniprot and ensembl

Data can also be read from sequence output in any supported format written by an EMBOSS or third-party application.

The input format can be specified by using the command-line qualifier `-sformat xxx`, where 'xxx' is replaced by the name of the required format. The available format names are: text, html, xml (uniprotxml), obo, embl (swissprot)

Where the sequence format has no feature information, a second file can be read to load the feature data. The file is specified with the qualifier `-ufo xxx` and the feature format is specified with the qualifier `-fformat xxx`

See: http://emboss.sf.net/docs/themes/SequenceFormats.html for further information on sequence formats.

See: http://emboss.sf.net/docs/themes/FeatureFormats.html for further information on feature formats.

twofeat reads two sequence inputs with feature information.

### Input files for usage example

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

### Database entry: tembl:x65923

    ID   X65923; SV 1; linear; mRNA; STD; HUM; 518 BP.
    XX
    AC   X65923;
    XX
    DT   13-MAY-1992 (Rel. 31, Created)
    DT   18-APR-2005 (Rel. 83, Last updated, Version 11)
    XX
    DE   H.sapiens fau mRNA
    XX
    KW   fau 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-518
    RA   Michiels L.M.R.;
    RT   ;
    RL   Submitted (29-APR-1992) to the INSDC.
    RL   L.M.R. Michiels, University of Antwerp, Dept of Biochemistry,
    RL   Universiteisplein 1, 2610 Wilrijk, BELGIUM
    XX
    RN   [2]
    RP   1-518
    RX   PUBMED; 8395683.
    RA   Michiels L., Van der Rauwelaert E., Van Hasselt F., Kas K., Merregaert J.;
    RT   "fau cDNA encodes a ubiquitin-like-S30 fusion protein and is expressed as
    RT   an antisense sequence in the Finkel-Biskis-Reilly murine sarcoma virus";
    RL   Oncogene 8(9):2537-2546(1993).
    XX
    DR   Ensembl-Gn; ENSG00000149806; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000279259; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000434372; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000525297; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000526555; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000527548; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000529259; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000529639; Homo_sapiens.
    DR   Ensembl-Tr; ENST00000531743; Homo_sapiens.
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..518
    FT                   /organism="Homo sapiens"
    FT                   /chromosome="11q"
    FT                   /map="13"
    FT                   /mol_type="mRNA"
    FT                   /clone_lib="cDNA"
    FT                   /clone="pUIA 631"
    FT                   /tissue_type="placenta"
    FT                   /db_xref="taxon:9606"
    FT   misc_feature    57..278
    FT                   /note="ubiquitin like part"
    FT   CDS             57..458
    FT                   /gene="fau"
    FT                   /db_xref="GDB:135476"
    FT                   /db_xref="GOA:P35544"
    FT                   /db_xref="GOA:P62861"
    FT                   /db_xref="H-InvDB:HIT000322806.14"
    FT                   /db_xref="HGNC:3597"
    FT                   /db_xref="InterPro:IPR000626"
    FT                   /db_xref="InterPro:IPR006846"
    FT                   /db_xref="InterPro:IPR019954"
    FT                   /db_xref="InterPro:IPR019955"
    FT                   /db_xref="InterPro:IPR019956"
    FT                   /db_xref="PDB:2L7R"
    FT                   /db_xref="UniProtKB/Swiss-Prot:P35544"
    FT                   /db_xref="UniProtKB/Swiss-Prot:P62861"
    FT                   /protein_id="CAA46716.1"
    FT                   /translation="MQLFVRAQELHTFEVTGQETVAQIKAHVASLEGIAPEDQVVLLAG
    FT                   APLEDEATLGQCGVEALTTLEVAGRMLGGKVHGSLARAGKVRGQTPKVAKQEKKKKKTG
    FT                   RAKRRMQYNRRFVNVVPTFGKKKGPNANS"
    FT   misc_feature    98..102
    FT                   /note="nucleolar localization signal"
    FT   misc_feature    279..458
    FT                   /note="S30 part"
    FT   polyA_signal    484..489
    FT   polyA_site      509
    XX
    SQ   Sequence 518 BP; 125 A; 139 C; 148 G; 106 T; 0 other;
         ttcctctttc tcgactccat cttcgcggta gctgggaccg ccgttcagtc gccaatatgc        60
         agctctttgt ccgcgcccag gagctacaca ccttcgaggt gaccggccag gaaacggtcg       120
         cccagatcaa ggctcatgta gcctcactgg agggcattgc cccggaagat caagtcgtgc       180
         tcctggcagg cgcgcccctg gaggatgagg ccactctggg ccagtgcggg gtggaggccc       240
         tgactaccct ggaagtagca ggccgcatgc ttggaggtaa agttcatggt tccctggccc       300
         gtgctggaaa agtgagaggt cagactccta aggtggccaa acaggagaag aagaagaaga       360
         agacaggtcg ggctaagcgg cggatgcagt acaaccggcg ctttgtcaac gttgtgccca       420
         cctttggcaa gaagaagggc cccaatgcca actcttaagt cttttgtaat tctggctttc       480
         tctaataaaa aagccactta gttcagtcaa aaaaaaaa                               518
    //

## Output file format

The output is a standard EMBOSS report file.

The results can be output in one of several styles by using the command-line qualifier `-rformat xxx`, where 'xxx' is replaced by the name of the required format. The available format names are: embl, genbank, gff, pir, swiss, dasgff, debug, listfile, dbmotif, diffseq, draw, restrict, excel, feattable, motif, nametable, regions, seqtable, simple, srs, table, tagseq.

See: http://emboss.sf.net/docs/themes/ReportFormats.html for further information on report formats.

twofeat outputs a report format file. The default format is 'table'.

### Output files for usage example

### File: x65923.twofeat

    ########################################
    # Program: twofeat
    # Rundate: Mon 15 Jul 2013 12:00:00
    # Commandline: twofeat
    #    [-sequence] tembl:x65923
    #    -atype polyA_signal
    #    -btype polyA_site
    #    -minrange 10
    #    -maxrange 50
    # Report_format: table
    # Report_file: x65923.twofeat
    ########################################

    #=======================================
    #
    # Sequence: X65923     from: 1   to: 518
    # HitCount: 1
    #=======================================

      Start     End  Strand   Score starta   enda startb   endb
        484     509       +   0.000    484    489    509    509

    #---------------------------------------
    #---------------------------------------

    #---------------------------------------
    # Total_sequences: 1
    # Total_length: 518
    # Reported_sequences: 1
    # Reported_hitcount: 1
    #---------------------------------------

### Output files for usage example 2

### File: x65923.twofeat

    ##gff-version 3
    ##sequence-region X65923 1 518
    #!Date 2013-07-15
    #!Type DNA
    #!Source-version EMBOSS 6.6.0.0
    X65923	EMBL	polyA_signal_sequence	484	489	.	+	.	ID=X65923.6
    X65923	EMBL	polyA_site	509	509	.	+	.	ID=X65923.7

## Data files

None.

## Notes

twofeat is intended for use as a simple data-mining tool to enable you to look for instances of pairs of features that occur near to each other in the same sequence entry.

## References

None.

## Warnings

None.

## Diagnostic Error Messages

None.

## Exit status

It always exits with status 0.

## Known bugs

There is a slight memory leak that must be fixed at some time. This does no affect the results.

## See also

Program name | Description
--- | ---
extractfeat | Extract features from sequence(s)
maskfeat | Write a sequence with masked features
showfeat | Display features of a sequence in pretty format

## Author(s)

Gary Williams formerly at:
MRC Rosalind Franklin Centre for Genomics Research Wellcome Trust Genome Campus, Hinxton, Cambridge, CB10 1SB, UK

Please report all bugs to the EMBOSS bug team (emboss-bug © emboss.open-bio.org) not to the original author.

## History

Written (2002) - Gary Williams

## Target users

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

## Comments

None