| seqret

## Function

Reads and writes (returns) sequences

## Description

The simplicity of the above description of this program greatly understates the rich functionality of this program.

Because EMBOSS programs can take a wide range of qualifiers that slightly change the behaviour of the program when reading or writing a sequence, this program can do many more things than simply "read and write a sequence".

seqret can read a sequence or many sequences from databases, files, files of sequence names, the command-line or the output of other programs and then can write them to files, the screen or pass them to other programs. Because it can read in a sequence from a database and write it to a file, seqret is a program for extracting sequences from databases. Because it can write the sequence to the screen, seqret is a program for displaying sequences.

seqret can read sequences in any of a wide range of standard sequence formats. You can specify the input and output formats being used. If you don't specify the input format, seqret will try a set of possible formats until it reads it in successfully. Because you can specify the output sequence format, seqret is a program to reformat a sequence.

seqret can read in the reverse complement of a nucleic acid sequence. It therefore is a program for producing the reverse complement of a sequence.

seqret can read in a sequence whose begin and end positions you have specified and write out that fragment. It is therefore a utility for doing simple extraction of a region of a sequence.

seqret can change the case of the sequence being read in to upper or to lower case. It is therefore a simple sequence beautification utility.

seqret can do any combination of the above functions.

The sequence input and output specification of this (and many other EMBOSS programs) is described as being a Uniform Sequence Address.

The Uniform Sequence Address, or USA, is a somewhat tongue-in-cheek reference to a URL-style sequence naming used by all EMBOSS applications.

The USA is a very flexible way of specifying one or more sequences from a variety of sources and includes sequence files, database queries and external applications.

See the full specification of USA syntax at:
http://www.uk.embnet.org/Software/EMBOSS/Themes/UniformSequenceAddress.html

The basic USA syntax is one of:

- "file"
- "file:entry"
- "format::file"
- "format::file:entry"
- "database:entry"
- "database"
- "@file"

Note that ':' separates the name of a file containing many possible entries from the specific name of a sequence entry in that file. It also separates the name of a database from an entry in that database

Note also that '::' separates the specified format of a file from the name of the file. Normally the format can be omitted, in which case the program will attempt to identify the correct format when reading the sequence in and will default to using FASTA format when writing the sequence out.

Valid names of the databases set up in your local implementation of EMBOSS can be seen by using the program 'showdb'.

Database queries, and individual entries in files that have more than one sequence entry, use wildcards of "?" for any character and "*" for any string of characters. There are some problems with the Unix shell catching these characters so they do need to be hidden in quotes or preceded by a backslash on the Unix command line, (for example "embl:hs\*")

The output USA name 'stdout' is special. It makes the output go to the device 'standard output'. This is the screen, by default.

### Example USAs

The following are valid USAs for sequences:

USA | Description
--- | ---
xxx.seq | A sequence file "xxx.seq" in any format
fasta::xxx.seq | A sequence file "xxx.seq" in fasta format
gcg::egmsmg.gcg | A sequence file "egmsmg.gcg" in GCG 9 format
egmsmg.gcg -sformat=gcg | A sequence file "egmsmg.gcg" in GCG 9 format
embl::paamir.em | A sequence file "paamir.em" in EMBL format
embl:paamir | EMBL entry PAAMIR, using whatever access method is defined locally for the EMBL database
embl:X13776 | EMBL entry X13776, using whatever access method is defined locally for the EMBL database and searching by accession number and entry name (X13776 is the accession number in this case)
embl-acc:X13776 | EMBL entry X13776, using whatever access method is defined locally for the EMBL database and searching by accession number only
embl-id:paamir | EMBL entry PAAMIR, using whatever access method is defined locally for the EMBL database, and searching by ID only
embl:paami* | EMBL entries PAAMIB, PAAMIE and so on, usually in alphabetical order, using whatever access method is defined locally for the EMBL database
embl or EMBL:* | All sequences in the EMBL database
@mylist | Reads file mylist and uses each line as a separate USA. This is standard VMS list file syntax, also used in SRS 4.0 but missing in SRS 5.0. The list file is a list of USAs (one per line). List files can contain references to other lists files or any other standard USA.
list::mylist | Same as "@mylist" above
'getz -e [embl-id:paamir] |' | The pipe character "|" causes EMBOSS to fire up getz (SRS 5.1) to extract entry PAAMIR from EMBL in EMBL format. Any application or script which writes one or more sequences to stdout can be used in this way.
asis::atacgcagttatctgaccat | So far the shortest USA we could invent. In 'asis' format the name is the sequence so no file needs to be opened. This is a special case. It was intended as a joke, but could be quite useful for generating command lines.

### Input sequence formats

To date, the following sequence formats are accepted as input.

By default, (i.e. if no format is explicitly specified) EMBOSS tries each format in turn until one succeeds.

Input Format | Comments
--- | ---
gcg | GCG 9.x and 10.x format with the format and sequence type identified on the first line of the file
gcg8 | GCG 8.x format where anything up to the first line containing ".." is considered as heading, and the remainder is sequence data. This format is complicated by the header appearing to be in other formats such as EMBL, and by the possibility of reading a large amount of data in the wrong format before discovering that there is no ".." line because it is not GCG format after all.
embl em | EMBL entry format, or at least a minimal subset of the fields. The Staden package and others use EMBL or similar formats for sequence data.
swiss sw | SWISSPROT entry format, or at least a minimal subset of the fields.
fasta pearson | FASTA format with an optional accession number after the sequence identifier, eg: >name description or >name accession description and with an optional database name in GCG style fasta format included as part of the sequence identifier, eg: >database:name accession description
ncbi | FASTA format with optional accession number and database name in NCBI style included as part of the sequence identifier. eg >database|accession|id description (and other variants on this theme!)
genbank gb | GENBANK entry format, or at least a minimal subset of the fields.
nbrf pir | NBRF (PIR) format, as used in the PIR database sequence files.
codata | CODATA format.
strider | DNA strider format
clustal aln | ClustalW ALN (multiple alignment) format.
phylip | PHYLIP non-interleaved multiple alignment format.
acedb | ACeDB format
msf | Wisconsin Package GCG's MSF multiple sequence format.
hennig86 | Hennig86 format
jackknifer | Jackknifer format
jackknifernon | Jackknifernon format
nexus paup | Nexus/PAUP format
nexusnon paupnon | Nexusnon/PAUPnon format
treecon | Treecon format
mega | Mega format
meganon | Meganon format
ig | IntelliGenetics format.
staden experiment | The experiment file format used by the "gap" program in the Staden package, where the sequence identifier is optional and the remainer is plain text. Some alternative nucleotide ambiguity codes are used and must be converted.
unknown text plain | Plain text. This is the format with no format. The whole of the file is read in as a sequence. No attempt is made to parse the file contents in any way. Anything is acceptable in this format.
raw | Like unknown/text/plain format except that it accepts only alphanumeric and whitespace characters and rejects anything else.
asis | This is not so much a sequence format as a quick way of entering a sequence on the command line, but it is included here for completeness. Where a filename would normally be given, in asis format there is the sequence itself. An example would be: asis::atacgcagttatctgaccat In 'asis' format the name is the sequence so no file needs to be opened. This is a special case. It was intended as a joke, but could be quite useful for generating command lines.

### Output sequence formats

To date, the following sequence formats are available as output.

Some sequence formats can hold multiple sequences in one file, these are marked as multiple in the following table. The details of how many sequences are held in one file differs between formats, but they either allow many sequences to be concatenated one after the other, or they hold the sequences together in some sort of aligned set of sequences.

Other formats, such as GCG, plain and staden formats can only hold one sequence per file, these are marked as single. An attempt to concatenate several sequences in one file leaves the results as a mess that makes it impossible to decide where the sequences start and end or what is annotation and what is sequence.

These single formats therefore cause problems when there are multiple sequences to write out because a single file containing multiple sequences in that format is invalid. When these formats are specified for output, an EMBOSS program will allow you to write many sequences to one file, but EMBOSS programs will not be able to reliably read in the resulting mess.

N.B This behaviour changed in EMBOSS version 1.7.0. (31 Oct 2000) Previously, EMBOSS programs that were asked to write multiple sequences in a single format whould ignore the requested output file name and would write each sequence into a separate file whose name was constructed from the sequence name and the name of the format. This resulted in ouput to files whose names could not be reliably controlled. A decision was taken that EMBOSS users were intelligent people who could live with the consequences of their actions and who could learn not to write out multiple sequences to a file in formats that could not cope with multiple sequences.

It you really wish to write multiple sequences out in formats that can not cope with multiple sequences, you are advised to add the global qualifier -ossingle on the command line. This will force the EMBOSS program to ignore the given output file name and will generate its own file names. One sequence will be written to each such file. These file names are made from the sequence ID name, with the name of the format as the extension (e.g. hsfau.gcg).

This is not ideal. Preferably, you should stay away from formats that can't cope with multiple sequences in a file.

Output Format | Single/ Multiple | Comments
--- | --- | ---
gcg | single | Wisconsin Package GCG 9.x and 10.x format with the sequence type on the first line of the file.
gcg8 | single | GCG 8.x format where anything up to the first line containing ".." is considered as heading, and the remainder is sequence data.
embl em | multiple | EMBL entry format with available fields filled in and others with no infomation omitted. The EMBOSS command line allows missing data such as accession numbers to be provided if they are not obtainable from the input sequence.
swiss sw | multiple | SwisProt entry format with available fields filled in and others with no infomation omitted. The EMBOSS command line allows missing data such as accession numbers to be provided if they are not obtainable from the input sequence.
fasta | multiple | Standard Pearson FASTA format, but with the accession number included after the identifier if available.
pearson | multiple | Simple Pearson FASTA format, an alias for "fasta" format.
ncbi | multiple | NCBI style FASTA format with the database name, entry name and accession number separated by pipe ("|") characters.
nbrf pir | multiple | NBRF (PIR) format, as used in the PIR database sequence files.
genbank gb | multiple | GENBANK entry format with available fields filled in and others with no infomation omitted. The EMBOSS command line allows missing data such as accession numbers to be provided if they are not obtainable from the input sequence.
ig | multiple | Intelligenetics format, as used by the Intelligenetics package
codata | multiple | CODATA format.
strider | multiple | DNA strider format
acedb | multiple | ACeDB format
staden experiment | single | The experiment file format used by the "gap" program in the Staden package. Some alternative nucleotide ambiguity codes are used and are converted.
text plain raw | single | Plain sequence, no annotation or heading.
fitch | multiple | Fitch format
msf | multiple | Wisconsin Package GCG's MSF multiple sequence format.
clustal aln | multiple | Clustal multiple sequence format.
phylip | multiple | PHYLIP non-interleaved format.
phylip3 | multiple | PHYLIP interleaved format.
asn1 | multiple | A subset of ASN.1 containing entry name, accession number, description and sequence, similar to the current ASN.1 output of readseq
hennig86 | multiple | Hennig86 format
mega | multiple | Mega format
meganon | multiple | Meganon format
nexus paup | multiple | Nexus/PAUP format
nexusnon paupnon | multiple | Nexusnon/PAUPnon format
jackknifer | multiple | Jackknifer format
jackknifernon | multiple | Jackknifernon format
treecon | multiple | Treecon format
debug | multiple | EMBOSS sequence object report for debugging showing all available fields. Not all fields will contain data - this depends very much on the input format used.

### Future directions

More formats, both for input and for output, can be easily added, so suggestions are always welcome.

### Associated qualifiers

As noted previously there are many 'associated' qualifiers that alter the behaviour of seqret when it reads in or writes out a sequence. As these are used in all EMBOSS programs that read in or write out sequences, they are not reported by the '-help' qualifier. They are however reported by the pair of qualifiers: '-help -verbose':

Some of the more useful associated qualifiers are:

Qualifier | Description
--- | ---
-sbegin | The first position to be used in the sequence
-send | The last position to be used in the sequence
-sreverse | Use the reverse complement of a nucleic acid sequence
-sask | Ask the user for begin/end/reverse information
-slower | Convert the sequence to lower case
-supper | Convert the sequence to upper case
-sformat | Specify the input sequence format
-osformat | Specify the output sequence format
-ossingle | Write each entry into a separate file
-auto | Turn off prompts and don't report the one-line description
-stdout | Write the results to 'standard output' (the screen)
-filter | Read input from another program, write to the screen
-options | Prompt for optional qualifiers
-help | Display a table of the command-line options

The set of associated qualifiers for sequences behave in different ways depending on where they appear.

If these qualifiers immediately follow a parameter they apply only to that parameter and not to all cases. If they occur before any parameters, they apply to all following sequence parameters.

If there are no two parameters of equal type, the order of parameters and their qualifiers is irrelevant.

Where a qualifier is defined more than once, for example "-sformat" for 2 input sequences to be aligned, the qualifier name can have a number to indicate which sequence is meant. "-sbegin2=25" will apply only to the second sequence, no matter where it appears on the command line.

The -sbegin and -send qualifiers take an integer number specifying the position to begin or end reading a sequence. If the number is positive, the number is the position counting from the first base or residue of the sequence. If the number is negative the position is counted from the end of the sequence, so position -1 is the last base or residue of the sequence. (If -sbegin 0 is used, it is assumed to be the same as -sbegin 1 and -send 0 is the same as -send -1.)

The filter qualifier makes the program behave like a filter, reading its (first) input 'file' from the standard input, and writing its (first) output 'file' to the standard output. The -filter qualifier will also invoke the -auto qualifier, so the user is never prompted for any missing values.

Example:

    % cat sequence.seq | seqret -filter | lpr

The example shows the application seqret being run with the -filter qualifier. The input file is 'piped' into the program using the unix command cat and the output is 'piped' directly to the unix program lpr, which will print it on the printer.

When the -options qualifier is used and not all the parameters are given on the command line, it will query the user for those parameters. It will not only query the user for the required parameters as it would do without the -options qualifier, but it will also query the user for the optional parameters.

When the -stdout qualifier is used, the user will still be prompted for all the info that is required, but will write to standard output by default. The user will also still be prompted for an output filename, in case the user wants to save the output to a file.

## Usage

Here is a sample session with seqret

Extract an entry from a database and write it to a file:

    % seqret
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]:

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

Example 2

Read all entries in the database 'tembl' that start with 'hs' and write them to a file. In this example the specification is all done in the command line and to stop Unix getting confused by the '*' character, it has to have a backslash ('\') before it:

    % seqret tembl:hs\*  hsall.seq
    Reads and writes (returns) sequences

Go to the output files for this example

Example 3

seqret does not read in features by default because this results in slightly faster performance. If however you wish to read in features with your sequence and write them out on output, using '-feature' will change the default behaviour to use any features present in the sequence. N.B. use embl format for the output file as the default format 'fasta' reports the features in gff (file "<seqname>.gff")

    % seqret -feature
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]: embl::hsfau.embl

Go to the output files for this example

Example 4

Display the contents of the sequence on the screen:

    % seqret
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]: stdout

    >HSFAU X65923.1 H.sapiens fau mRNA
    ttcctctttctcgactccatcttcgcggtagctgggaccgccgttcagtcgccaatatgc
    agctctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacggtcg
    cccagatcaaggctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgc
    tcctggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggaggccc
    tgactaccctggaagtagcaggccgcatgcttggaggtaaagttcatggttccctggccc
    gtgctggaaaagtgagaggtcagactcctaaggtggccaaacaggagaagaagaagaaga
    agacaggtcgggctaagcggcggatgcagtacaaccggcgctttgtcaacgttgtgccca
    cctttggcaagaagaagggccccaatgccaactcttaagtcttttgtaattctggctttc
    tctaataaaaaagccacttagttcagtcaaaaaaaaaa

Example 5

Write the result in GCG format by using the qualifier '-osformat'.

    % seqret -osf gcg
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.gcg]:

Go to the output files for this example

Example 6

Write the result in GCG format by specifying the format in the output USA on the command line.

    % seqret -outseq gcg::hsfau.gcg
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau

Example 7

Write the result in GCG format by specifying the format in the output USA at the prompt.

    % seqret
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]: gcg::hsfau.gcg

Example 8

Write the reverse-complement of a sequence:

    % seqret -srev
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]:

Go to the output files for this example

Example 9

Extract the bases between the positions starting at 5 and ending at 25:

    % seqret -sbegin 5 -send 25
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]:

Go to the output files for this example

Example 10

Extract the bases between the positions starting at 5 and ending at 5 bases before the end of the sequence:

    % seqret -sbegin 5 -send -5
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hsfau
    Output sequence [hsfau.fasta]:

Go to the output files for this example

Example 11

Read all entries in the database 'tembl' that start with 'hs' and write them to a file:

    % seqret
    Reads and writes (returns) sequences
    Input sequence(s): tembl:hs*
    Output sequence [hs989235.fasta]: hsall.seq

## Command line arguments

       Mandatory qualifiers:
      [-sequence]          seqall     Sequence database USA
      [-outseq]            seqoutall  Output sequence(s) USA

       Optional qualifiers: (none)
       Advanced qualifiers:
       -feature            boolean    Use feature information
       -firstonly          boolean    Read one sequence and stop

       Associated qualifiers:
      "-sequence" related qualifiers
       -sbegin1             integer    First base used
       -send1               integer    Last base used, def=seq length
       -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
       -sopenfile1          string     Input filename
       -sdbname1            string     Database name
       -sid1                string     Entryname
       -ufo1                string     UFO features
       -fformat1            string     Features format
       -fopenfile1          string     Features file name
      "-outseq" related 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 standard output
       -filter              boolean    Read standard input, write standard output
       -options             boolean    Prompt for required and optional values
       -debug               boolean    Write debug output to program.dbg
       -acdlog              boolean    Write ACD processing log to program.acdlog
       -acdpretty           boolean    Rewrite ACD file as program.acdpretty
       -acdtable            boolean    Write HTML table of options
       -verbose             boolean    Report some/full command line options
       -help                boolean    Report command line options. 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 deaths

Mandatory qualifiers | Allowed values | Default
--- | --- | ---
[-sequence] (Parameter 1) | Sequence database USA | Readable sequence(s) | Required
[-outseq] (Parameter 2) | Output sequence(s) USA | Writeable sequence(s) | <sequence>.format
Optional qualifiers | Allowed values | Default
(none)
Advanced qualifiers | Allowed values | Default
-feature | Use feature information | Boolean value Yes/No | No
-firstonly | Read one sequence and stop | Boolean value Yes/No | No

## Input file format

seqret reads one or more sequence USAs.

### Input files for usage example

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

### Database entry: tembl:hsfau

    ID   HSFAU      standard; RNA; HUM; 518 BP.
    XX
    AC   X65923;
    XX
    SV   X65923.1
    XX
    DT   13-MAY-1992 (Rel. 31, Created)
    DT   23-SEP-1993 (Rel. 37, Last updated, Version 10)
    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; Primates; Catarrhini; Hominidae; Homo.
    XX
    RN   [1]
    RP   1-518
    RA   Michiels L.M.R.;
    RT   ;
    RL   Submitted (29-APR-1992) to the EMBL/GenBank/DDBJ databases.
    RL   L.M.R. Michiels, University of Antwerp, Dept of Biochemistry,
    RL   Universiteisplein 1, 2610 Wilrijk, BELGIUM
    XX
    RN   [2]
    RP   1-518
    RX   MEDLINE; 93368957.
    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 sequences in the Finkel-Biskis-Reilly murine sarcoma virus";
    RL   Oncogene 8:2537-2546(1993).
    XX
    DR   SWISS-PROT; P35544; UBIM_HUMAN.
    DR   SWISS-PROT; Q05472; RS30_HUMAN.
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..518
    FT                   /chromosome="11q"
    FT                   /db_xref="taxon:9606"
    FT                   /organism="Homo sapiens"
    FT                   /tissue_type="placenta"
    FT                   /clone_lib="cDNA"
    FT                   /clone="pUIA 631"
    FT                   /map="13"
    FT   misc_feature    57..278
    FT                   /note="ubiquitin like part"
    FT   CDS             57..458
    FT                   /db_xref="SWISS-PROT:P35544"
    FT                   /db_xref="SWISS-PROT:Q05472"
    FT                   /gene="fau"
    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 from seqret is one or more sequences, and by default will be written in FASTA format.

If the '-firstonly' qualifier is used then only the first sequence of the input USA specification will be written out.

In some cases the output filename will be the same as the input filename, but as seqret reads only the first sequence before opening the output file it may try to overwrite the input. Note that this is not true of seqretset which reads all sequences into memory at startup, but which can need a large amount of memory for many sequences.

### Output files for usage example

### File: hsfau.fasta

    >HSFAU X65923.1 H.sapiens fau mRNA
    ttcctctttctcgactccatcttcgcggtagctgggaccgccgttcagtcgccaatatgc
    agctctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacggtcg
    cccagatcaaggctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgc
    tcctggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggaggccc
    tgactaccctggaagtagcaggccgcatgcttggaggtaaagttcatggttccctggccc
    gtgctggaaaagtgagaggtcagactcctaaggtggccaaacaggagaagaagaagaaga
    agacaggtcgggctaagcggcggatgcagtacaaccggcgctttgtcaacgttgtgccca
    cctttggcaagaagaagggccccaatgccaactcttaagtcttttgtaattctggctttc
    tctaataaaaaagccacttagttcagtcaaaaaaaaaa

### Output files for usage example 2

### File: hsall.seq

    >HS989235 H45989.1 yo13c02.s1 Soares adult brain N2b5HB55Y Homo sapiens cDNA clone IMAGE:177794 3', mRNA sequence.
    ccggnaagctcancttggaccaccgactctcgantgnntcgccgcgggagccggntggan
    aacctgagcgggactggnagaaggagcagagggaggcagcacccggcgtgacggnagtgt
    gtggggcactcaggccttccgcagtgtcatctgccacacggaaggcacggccacgggcag
    gggggtctatgatcttctgcatgcccagctggcatggccccacgtagagtggnntggcgt
    ctcggtgctggtcagcgacacgttgtcctggctgggcaggtccagctcccggaggacctg
    gggcttcagcttcccgtagcgctggctgcagtgacggatgctcttgcgctgccatttctg
    ggtgctgtcactgtccttgctcactccaaaccagttcggcggtccccctgcggatggtct
    gtgttgatggacgtttgggctttgcagcaccggccgccgagttcatggtngggtnaagag
    atttgggttttttcn
    >HSCAD5 X59796.1 H.sapiens mRNA for cadherin-5
    ctccactcacgctcagccctggacggacaggcagtccaacggaacagaaacatccctcag
    cccacaggcacgatctgttcctcctgggaagatgcagaggctcatgatgctcctcgccac
    atcgggcgcctgcctgggcctgctggcagtggcagcagtggcagcagcaggtgctaaccc
    tgcccaacgggacacccacagcctgctgcccacccaccggcgccaaaagagagattggat
    ttggaaccagatgcacattgatgaagagaaaaacacctcacttccccatcatgtaggcaa
    gatcaagtcaagcgtgagtcgcaagaatgccaagtacctgctcaaaggagaatatgtggg
    caaggtcttccgggtcgatgcagagacaggagacgtgttcgccattgagaggctggaccg
    ggagaatatctcagagtaccacctcactgctgtcattgtggacaaggacactggcgaaaa
    cctggagactccttccagcttcaccatcaaagttcatgacgtgaacgacaactggcctgt
    gttcacgcatcggttgttcaatgcgtccgtgcctgagtcgtcggctgtggggacctcagt
    catctctgtgacagcagtggatgcagacgaccccactgtgggagaccacgcctctgtcat
    gtaccaaatcctgaaggggaaagagtattttgccatcgataattctggacgtattatcac
    aataacgaaaagcttggaccgagagaagcaggccaggtatgagatcgtggtggaagcgcg
    agatgcccagggcctccggggggactcgggcacggccaccgtgctggtcactctgcaaga
    catcaatgacaacttccccttcttcacccagaccaagtacacatttgtcgtgcctgaaga
    cacccgtgtgggcacctctgtgggctctctgtttgttgaggacccagatgagccccagaa
    ccggatgaccaagtacagcatcttgcggggcgactaccaggacgctttcaccattgagac
    aaaccccgcccacaacgagggcatcatcaagcccatgaagcctctggattatgaatacat
    ccagcaatacagcttcatagtcgaggccacagaccccaccatcgacctccgatacatgag
    ccctcccgcgggaaacagagcccaggtcattatcaacatcacagatgtggacgagccccc
    cattttccagcagcctttctaccacttccagctgaaggaaaaccagaagaagcctctgat
    tggcacagtgctggccatggaccctgatgcggctaggcatagcattggatactccatccg
    caggaccagtgacaagggccagttcttccgagtcacaaaaaagggggacatttacaatga
    gaaagaactggacagagaagtctacccctggtataacctgactgtggaggccaaagaact
    ggattccactggaacccccacaggaaaagaatccattgtgcaagtccacattgaagtttt
    ggatgagaatgacaatgccccggagtttgccaagccctaccagcccaaagtgtgtgagaa
    cgctgtccatggccagctggtcctgcagatctccgcaatagacaaggacataacaccacg
    aaacgtgaagttcaaattcatcttgaatactgagaacaactttaccctcacggataatca
    cgataacacggccaacatcacagtcaagtatgggcagtttgaccgggagcataccaaggt
    ccacttcctacccgtggtcatctcagacaatgggatgccaagtcgcacgggcaccagcac
    gctgaccgtggccgtgtgcaagtgcaacgagcagggcgagttcaccttctgcgaggatat
    ggccgcccaggtgggcgtgagcatccaggcagtggtagccatcttactctgcatcctcac
    catcacagtgatcaccctgctcatcttcctgcggcggcggctccggaagcaggcccgcgc
    gcacggcaagagcgtgccggagatccacgagcagctggtcacctacgacgaggagggcgg
    cggcgagatggacaccaccagctacgatgtgtcggtgctcaactcggtgcgccgcggcgg
    ggccaagcccccgcggcccgcgctggacgcccggccttccctctatgcgcaggtgcagaa
    gccaccgaggcacgcgcctggggcacacggagggcccggggagatggcagccatgatcga
    ggtgaagaaggacgaggcggaccacgacggcgacggccccccctacgacacgctgcacat
    ctacggctacgagggctccgagtccatagccgagtccctcagctccctgggcaccgactc

      [Part of this file has been deleted for brevity]

    aacaaaaaaagagaatgttacaccaatatccttgatgaacatcgatgcaaaaatcctcaa
    taaaatactggcaaactgaatccagcagcacatcaaaaagcttatcctccatgatcaagt
    gggcttcatccctgccatgcaaggctggttcaacatacgaaatcaataaacataatccag
    catataaacagaaccaaagacacaaaccatatgattatctcaatagatgcagaaaaggcc
    tttgacaaaattcaacaatgcttcatgctaaaaactctcaataaattaggtattgatggg
    acatatctcaaaataataagagctatctatgacaaacccacagccaatatcatactgagt
    ggacaaaaactggaagcattccctttgaaaactggcacaaggcagggatgccctctctca
    ccactcctattcaacatagtgttggaagttctggccagggcaatcaggcaggagaaggaa
    ataaagggcattcaattaggaaaagaggaaggtgaaattgtccctgtttgcagatgacat
    gattgtatatctagaaaaccccattgtctcagcccaaaatctccttaagctgataagcaa
    cttcagcaaagtctcaggatataaaatcagtgtgcaaaaatcacaagtattcctatgcac
    caataacagacaaacagagagccaaatcatgagtgaactcccattcacaattgcttcaaa
    gagaataaaatacctaggaatccaacttacaagggatgtgaaggacctcttcaaggagaa
    ctacaaaccactgctcaatgaaataaaagaggatacaaacaaatggaagaacattccatg
    cttatgggtaggaagaatcatatcgtgaaaatggtcatactgcccaaggtaatttataga
    ttcaatgccatccccatcaagctaccaatgactttcttcacagaactggaaaaaactact
    ttaaagttcatatggaatcaaaaaagagcccacatcaccaaggcaatcctaagccaaaag
    aacaaagctggaggcatcacgctacctgacttcaaactatactacaatgctacggtaacc
    aaaacagcatggtactggtaccaaaacagagatctagaccaatggaacagaacagagccc
    tcagaaataatgccgcatatctacaactatccgatctttgacaaacctgagagaaacaag
    caatggggaaaggattccctatttaataaatggtgctgggaaaactggctagccatatgt
    agaaagctgaaactggatccttccttacaccttatacaaaaattaattcaagatggatta
    aagacttaaacattagacctaaaaccataaaaaccctagaaaaaaacctaggcaatacca
    ttcaggacataggcatgggcaaggacttcatgtctaaaacaccaaaacgaatggcaacaa
    aagacaaaatggacaaacgggatctaattaaactaaagagcttctgcacagctaaagaaa
    ctaccatcagagtgaacaggcaacctacaaaatgggagaaaatttttgcaatctactcat
    ctgacaaagggctaatatccagaatctacaatgaactcaaacaaatttacaagaaaaaac
    aaacaaccccatcaaaaagtgggcaaaggatatgaacagacacttctcaaaagaagacat
    ttatgtaatcaaaaaacacatgaaaaaatgctcatcatcactagccatcagagaaatgca
    aatcaaaaccacaatgagataccatctcacaccagttagaatggcgatcattaaaaagtc
    aggaaacaacaggtgctggagaggatgtggagaaacaggaacaacttttacactgttggt
    gggactgtaaactagttcaaccattgcggaagtcagtgtggcaattcctcaggaatctag
    aactagaaataccatttgacccagccatcccattactgggtagatacccaaaggattata
    aatcatgctgctataaagacacatgcacacgtatgtttattgcagcactattcacaatag
    caaagacttggaaccaacccaaatgtccaacaacgatagattggattaagaaaatgtggc
    acatatacaccatggaatactatgcagccataaaaaatgatgagttcatgtcctttgtag
    ggacatggatgaagctggaaactatcattctcagcaaactatcacaaggacaataaacca
    aacaccgcatgttctcactcataggtgggaattgaacaatgagaacacatggacacatga
    agaggaacatcacactctggggactgttatggggtggggggcaggggcagggatagcact
    aggagatatacctaatgctaaatgacgagttaatgggtgcagcacaccaacatggcacat
    gtatacatatataacaaacctgccgttgtgcacatgtaccctaaaacttgaagtataata
    ataaaaaaaagttatcctattaaaactgatctcacacatccgtagagccattatcaagtc
    tttctctttgaaacagacagaaatttagtgttttctcagtcagttaac
    >HSA203YC1 Z52466.1 H.sapiens (D1S2660) DNA segment containing (CA) repeat; clone AFMa203yc1; single read.
    agctgtgtgcacacaacatganggggcacacatgcacatgcacacatgcccacatgcata
    tgcacacacacacacacacacacacacacattcatgcccaagcacgcccaccctcatgtc
    tcaccatgtgcacataacacacagtcacatataccctggcacacatgcccacatgcagac
    acgaaacacaggcccacgnttncatgcacacaggtatgggcacacataccatgcacacat
    aangacaaataccaggccagacatgatttgcccctgctggtgtcactgttaagtgtgaca
    gacaagcagaggacacacacccacctgggacgcggggcttcaggagagaggcagacctaa
    tagggcccggattcggggctggggaggct

### Output files for usage example 3

### File: hsfau.embl

    ID   HSFAU      standard; DNA; UNC; 518 BP.
    AC   X65923;
    SV   X65923.1
    DE   H.sapiens fau mRNA
    KW   fau gene.
    OS   Homo sapiens (human)
    OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
    OC   Mammalia; Eutheria; Primates; Catarrhini; Hominidae; Homo.
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..518
    FT                   /chromosome="11q"
    FT                   /db_xref="taxon:9606"
    FT                   /organism="Homo sapiens"
    FT                   /tissue_type="placenta"
    FT                   /clone_lib="cDNA"
    FT                   /clone="pUIA 631"
    FT                   /map="13"
    FT   misc_feature    57..278
    FT                   /note="ubiquitin like part"
    FT   CDS             57..458
    FT                   /db_xref="SWISS-PROT:P35544"
    FT                   /db_xref="SWISS-PROT:Q05472"
    FT                   /gene="fau"
    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
    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 files for usage example 5

### File: hsfau.gcg

    !!NA_SEQUENCE 1.0

    H.sapiens fau mRNA

    HSFAU  Length: 518  Type: N  Check: 2981 ..

       1 ttcctctttc tcgactccat cttcgcggta gctgggaccg ccgttcagtc

      51 gccaatatgc agctctttgt ccgcgcccag gagctacaca ccttcgaggt

     101 gaccggccag gaaacggtcg cccagatcaa ggctcatgta gcctcactgg

     151 agggcattgc cccggaagat caagtcgtgc tcctggcagg cgcgcccctg

     201 gaggatgagg ccactctggg ccagtgcggg gtggaggccc tgactaccct

     251 ggaagtagca ggccgcatgc ttggaggtaa agttcatggt tccctggccc

     301 gtgctggaaa agtgagaggt cagactccta aggtggccaa acaggagaag

     351 aagaagaaga agacaggtcg ggctaagcgg cggatgcagt acaaccggcg

     401 ctttgtcaac gttgtgccca cctttggcaa gaagaagggc cccaatgcca

     451 actcttaagt cttttgtaat tctggctttc tctaataaaa aagccactta

     501 gttcagtcaa aaaaaaaa

### Output files for usage example 8

### File: hsfau.fasta

    >HSFAU X65923.1 H.sapiens fau mRNA
    ttttttttttgactgaactaagtggcttttttattagagaaagccagaattacaaaagac
    ttaagagttggcattggggcccttcttcttgccaaaggtgggcacaacgttgacaaagcg
    ccggttgtactgcatccgccgcttagcccgacctgtcttcttcttcttcttctcctgttt
    ggccaccttaggagtctgacctctcacttttccagcacgggccagggaaccatgaacttt
    acctccaagcatgcggcctgctacttccagggtagtcagggcctccaccccgcactggcc
    cagagtggcctcatcctccaggggcgcgcctgccaggagcacgacttgatcttccggggc
    aatgccctccagtgaggctacatgagccttgatctgggcgaccgtttcctggccggtcac
    ctcgaaggtgtgtagctcctgggcgcggacaaagagctgcatattggcgactgaacggcg
    gtcccagctaccgcgaagatggagtcgagaaagaggaa

### Output files for usage example 9

### File: hsfau.fasta

    >HSFAU X65923.1 H.sapiens fau mRNA
    tctttctcgactccatcttcg

### Output files for usage example 10

### File: hsfau.fasta

    >HSFAU X65923.1 H.sapiens fau mRNA
    tctttctcgactccatcttcgcggtagctgggaccgccgttcagtcgccaatatgcagct
    ctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacggtcgccca
    gatcaaggctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgctcct
    ggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggaggccctgac
    taccctggaagtagcaggccgcatgcttggaggtaaagttcatggttccctggcccgtgc
    tggaaaagtgagaggtcagactcctaaggtggccaaacaggagaagaagaagaagaagac
    aggtcgggctaagcggcggatgcagtacaaccggcgctttgtcaacgttgtgcccacctt
    tggcaagaagaagggccccaatgccaactcttaagtcttttgtaattctggctttctcta
    ataaaaaagccacttagttcagtcaaaaaa

## Data files

None.

## Notes

This description of what you can do when reading or writing files is not specific to the program seqret. All EMBOSS programs that read or write sequences can do the same.

seqret is often one of the first programs taught in EMBOSS training courses. This is because it is versatile, it is extremely powerful for its size (17 lines of code) it illustrates many aspects of EMBOSS programs and it was one of the first EMBOSS programs to be written, so it has a special place in the hearts of EMBOSS developers.

The name 'seqret' derives both from its function ("sequence return") and from the fact that immense amounts of functionality can come from so few lines of source code - most of the work is done by the EMBOSS libraries which the program calls and whose complexity is hidden, or "secret".

## References

None.

## Warnings

None.

## Diagnostic Error Messages

None.

## Exit status

It always exits with a status of 0.

## Known bugs

None.

## See also

Program name | Description
--- | ---
biosed | Replace or delete sequence sections
cutseq | Removes a specified section from a sequence
degapseq | Removes gap characters from sequences
descseq | Alter the name or description of a sequence
entret | Reads and writes (returns) flatfile entries
extractfeat | Extract features from a sequence
extractseq | Extract regions from a sequence
listor | Writes a list file of the logical OR of two sets of sequences
maskfeat | Mask off features of a sequence
maskseq | Mask off regions of a sequence
newseq | Type in a short new sequence
noreturn | Removes carriage return from ASCII files
notseq | Excludes a set of sequences and writes out the remaining ones
nthseq | Writes one sequence from a multiple set of sequences
pasteseq | Insert one sequence into another
revseq | Reverse and complement a sequence
seqretsplit | Reads and writes (returns) sequences in individual files
skipseq | Reads and writes (returns) sequences, skipping the first few
splitter | Split a sequence into (overlapping) smaller sequences
trimest | Trim poly-A tails off EST sequences
trimseq | Trim ambiguous bits off the ends of sequences
union | Reads sequence fragments and builds one sequence
vectorstrip | Strips out DNA between a pair of vector sequences
yank | Reads a sequence range, appends the full USA to a list file

Valid names of the databases set up in your local implementation of EMBOSS can be seen by using the program 'showdb'.

## Author(s)

Peter Rice (pmr © ebi.ac.uk)
Informatics Division, European Bioinformatics Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge CB10 1SD, UK

## History

1999 - Written by Peter Rice
Feb 2002 - '-feature' qualifier added by Peter Rice

## Target users

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

## Comments

### Fasta output format

#### Question

When i tried to convert the EMBL format file into fasta format using the program "seqret", I found that the Access.no appears twice...

    >AF102796 AF102796 Homo sapiens alphaE-catenin (CTNNA1) gene, exon 11.

#### Answer

"It is not a bug ... it is a feature"

There are many "FASTA formats". EMBOSS uses the format that ACEDB and the EBI genome projects use. The first field after the ID is the accession number, so that accession numbers can be kept when sequences are converted to FASTA format, without using the NCBI format (with '|' characters in the IDs).

Your EMBL format file has IDs that look like accession numbers, so EMBOSS fills in the accession number for each sequence, and reports it in the FASTA format.