| extractseq

## Function

Extract regions from a sequence

## Description

extractseq allows you to specify one or more regions of a sequence to extract sub-sequences from to build up a contiguous resulting sequence.

This is modelled on the cell's process of splicing out exons from mRNA, but the program is generally applicable to any cutting and splicing or editing operation on a single sequence.

extractseq reads in a sequence and a set of regions of that sequence as specified by pairs of start and end positions (either on the command-line or contained in a file) and writes out the specified regions of the input sequence in the order in which they have been specified. Thus, if the sequence "AAAGGGTTT" has been input and the regions: "7-9, 3-4" have been specified, then the output sequence will be: "TTTAG".

## Usage

Here is a sample session with extractseq

Extract the region from position 10 to 20:

    % extractseq tembl:hsfau result.seq -regions '10-20'
    Extract regions from a sequence

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

Example 2

Extract the regions 10 to 20, 30 to 45, 533 to 537:

    % extractseq tembl:hsfau1 result2.seq -regions '10-20 30-45 533-537'
    Extract regions from a sequence

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

Example 3

Extract the regions 782-856, 951-1095, 1557-1612 and 1787-1912:

    % extractseq tembl:hsfau1 -reg "782..856,951..1095,1557..1612,1787..1912" stdout
    Extract regions from a sequence

    >HSFAU1 X65921.1 H.sapiens fau 1 gene
    atgcagctctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacg
    gtcgcccagatcaaggctcatgtagcctcactggagggcattgccccggaagatcaagtc
    gtgctcctggcaggcgcgcccctggaggatgaggccactctgggccagtgcggggtggag
    gccctgactaccctggaagtagcaggccgcatgcttggaggtaaagtccatggttccctg
    gcccgtgctggaaaagtgagaggtcagactcctaaggtggccaaacaggagaagaagaag
    aagaagacaggtcgggctaagcggcggatgcagtacaaccggcgctttgtcaacgttgtg
    cccacctttggcaagaagaagggccccaatgccaactcttaa

Example 4

Extract the regions 782-856, 951-1095, 1557-1612 and 1787-1912 all to separate output sequences:

    % extractseq tembl:hsfau1 -reg "782..856,951..1095,1557..1612,1787..1912" stdout -separate
    Extract regions from a sequence

    >HSFAU1_782_856 H.sapiens fau 1 gene
    atgcagctctttgtccgcgcccaggagctacacaccttcgaggtgaccggccaggaaacg
    gtcgcccagatcaag
    >HSFAU1_951_1095 H.sapiens fau 1 gene
    gctcatgtagcctcactggagggcattgccccggaagatcaagtcgtgctcctggcaggc
    gcgcccctggaggatgaggccactctgggccagtgcggggtggaggccctgactaccctg
    gaagtagcaggccgcatgcttggag
    >HSFAU1_1557_1612 H.sapiens fau 1 gene
    gtaaagtccatggttccctggcccgtgctggaaaagtgagaggtcagactcctaag
    >HSFAU1_1787_1912 H.sapiens fau 1 gene
    gtggccaaacaggagaagaagaagaagaagacaggtcgggctaagcggcggatgcagtac
    aaccggcgctttgtcaacgttgtgcccacctttggcaagaagaagggccccaatgccaac
    tcttaa

## Command line arguments

       Mandatory qualifiers:
      [-sequence]          sequence   Sequence USA
       -regions            range      Regions to extract.
                                      A set of regions is specified by a set of
                                      pairs of positions.
                                      The positions are integers.
                                      They are separated by any non-digit,
                                      non-alpha character.
                                      Examples of region specifications are:
                                      24-45, 56-78
                                      1:45, 67=99;765..888
                                      1,5,8,10,23,45,57,99
      [-outseq]            seqoutall  Output sequence(s) USA

       Optional qualifiers:
       -separate           boolean    If this is set true then each specified
                                      region is written out as a separate
                                      sequence. The name of the sequence is
                                      created from the name of the original
                                      sequence with the start and end positions of
                                      the range appended with underscore
                                      characters between them, eg: XYZ region 2 to
                                      34 is written as: XYZ_2_34

       Advanced qualifiers: (none)
       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 USA | Readable sequence | Required
-regions | Regions to extract. A set of regions is specified by a set of pairs of positions. The positions are integers. They are separated by any non-digit, non-alpha character. Examples of region specifications are: 24-45, 56-78 1:45, 67=99;765..888 1,5,8,10,23,45,57,99 | Sequence range | Whole sequence
[-outseq] (Parameter 2) | Output sequence(s) USA | Writeable sequence(s) | <sequence>.format
Optional qualifiers | Allowed values | Default
-separate | If this is set true then each specified region is written out as a separate sequence. The name of the sequence is created from the name of the original sequence with the start and end positions of the range appended with underscore characters between them, eg: XYZ region 2 to 34 is written as: XYZ_2_34 | Boolean value Yes/No | No
Advanced qualifiers | Allowed values | Default
(none)

## Input file format

extractseq reads a normal sequence USA.

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

### Input files for usage example 2

### Database entry: tembl:hsfau1

    ID   HSFAU1     standard; DNA; HUM; 2016 BP.
    XX
    AC   X65921; S45242;
    XX
    SV   X65921.1
    XX
    DT   13-MAY-1992 (Rel. 31, Created)
    DT   21-JUL-1993 (Rel. 36, Last updated, Version 5)
    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; Primates; Catarrhini; Hominidae; 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   MEDLINE; 92412144.
    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:927-933(1992).
    XX
    DR   SWISS-PROT; P35544; UBIM_HUMAN.
    DR   SWISS-PROT; Q05472; RS30_HUMAN.
    XX
    FH   Key             Location/Qualifiers
    FH
    FT   source          1..2016
    FT                   /db_xref="taxon:9606"
    FT                   /organism="Homo sapiens"
    FT                   /clone_lib="CML cosmid"
    FT                   /clone="15.1"
    FT   mRNA            join(408..504,774..856,951..1095,1557..1612,1787..>1912)
    FT                   /gene="fau 1"
    FT   exon            408..504
    FT                   /number=1
    FT   intron          505..773
    FT                   /number=1
    FT   exon            774..856

      [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
    //

You can specifiy a file of ranges to extract by giving the '-regions' qualifier the value '@' followed by the name of the file containing the ranges. (eg: '-regions @myfile').

The format of the range file is:

- Comment lines start with '#' in the first column.
- Comment lines and blank lines are ignored.
- The line may start with white-space.
- There are two positive (integer) numbers per line separated by one or more space or TAB characters.
- The second number must be greater or equal to the first number.
- There can be optional text after the two numbers to annotate the line.
- White-space before or after the text is removed.

An example range file is:

    # this is my set of ranges
    12   23
     4   5       this is like 12-23, but smaller
    67   10348   interesting region

## Output file format

### Output files for usage example

### File: result.seq

    >HSFAU X65923.1 H.sapiens fau mRNA
    ctcgactccat

### Output files for usage example 2

### File: result2.seq

    >HSFAU1 X65921.1 H.sapiens fau 1 gene
    tccctctcgatacactcgggacaagttagggc

The output is a normal sequence file.

If the option '-separate' is used then each specified region is written to the output file as a separate sequence. The name of the sequence is created from the name of the original sequence with the start and end positions of the range appended with underscore characters between them,

For example: "XYZ region 2 to 34" is written as: "XYZ_2_34"

## Data files

None.

## Notes

None.

## References

None.

## Warnings

None.

## Diagnostic Error Messages

Several warning messages about malformed region specifications:

- Non-digit found in region ...
- Unpaired start of a region found in ...
- Non-digit found in region ...
- The start of a pair of region positions must be smaller than the end in ...

## Exit status

It exits with status 0, unless a region is badly constructed.

## Known bugs

None noted.

## 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
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
seqret | Reads and writes (returns) sequences
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

## Author(s)

Gary Williams (gwilliam © hgmp.mrc.ac.uk)
HGMP-RC, Genome Campus, Hinxton, Cambridge CB10 1SB, UK

## History

Written (2000) - Gary Williams

## Target users

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

## Comments