Main Content

restrict

Split nucleotide sequence at restriction site

Syntax

Fragments = restrict(SeqNT, Enzyme)
Fragments = restrict(SeqNT, NTPattern, Position)
[Fragments, CuttingSites] = restrict(...)
[Fragments, CuttingSites, Lengths] = restrict(...)
... = restrict(..., 'PartialDigest', PartialDigestValue)

Arguments

SeqNT

One of the following:

Enzyme

Character vector or string specifying a name of a restriction enzyme from REBASE®, the Restriction Enzyme Database.

Tip

Some enzymes specify cutting rules for both a strand and its complement strand. restrict applies the cutting rule only for the 5' —> 3' strand. For a workaround to applying an enzyme cutting rule for both strands, see Examples.

NTPattern

Short nucleotide sequence recognition pattern to search for in SeqNT, a larger sequence. NTPattern can be either of the following:

Position

Either of the following:

  • Integer specifying a position in the SeqNT to cut, relative to NTPattern.

  • Two-element vector specifying two positions in the SeqNT to cut, relative to NTPattern.

Note

Position 0 corresponds to a cut before the first base of NTPattern.

PartialDigestValue

Value from 0 to 1 (default) specifying the probability that a cleavage site will be cut.

Description

Fragments = restrict(SeqNT, Enzyme) cuts SeqNT, a nucleotide sequence, into fragments at the restriction sites of Enzyme, a restriction enzyme. The restrict function stores the return values in Fragments, a cell array of sequences.

Fragments = restrict(SeqNT, NTPattern, Position) cuts SeqNT, a nucleotide sequence, into fragments at restriction sites specified by NTPattern, a nucleotide recognition pattern, and Position.

[Fragments, CuttingSites] = restrict(...) returns a numeric vector with the indices representing the cutting sites. The restrict function adds a 0 to the beginning of the CuttingSites vector so that the number of elements in CuttingSites equals the number of elements in Fragments. You can use CuttingSites + 1 to point to the first base of every fragment respective to the original sequence.

[Fragments, CuttingSites, Lengths] = restrict(...) returns a numeric vector with the lengths of every fragment.

... = restrict(..., 'PartialDigest', PartialDigestValue) simulates a partial digest where each restriction site in the sequence has a PartialDigestValue or probability of being cut.

REBASE, the Restriction Enzyme Database, is a collection of information about restriction enzymes and related proteins. For more information about REBASE or to search REBASE for the name of a restriction enzyme, see:

Examples

Example 31. Splitting a Nucleotide Sequence by Specifying an Enzyme
  1. Enter a nucleotide sequence.

    Seq = 'AGAGGGGTACGCGCTCTGAAAAGCGGGAACCTCGTGGCGCTTTATTAA';
  2. Use the restriction enzyme HspAI (which specifies a recognition sequence of GCGC and a cleavage position of 1) to cleave the nucleotide sequence.

    fragmentsEnzyme = restrict(Seq,'HspAI')

    MATLAB returns:

    fragmentsEnzyme = 
    
        'AGAGGGGTACG'
        'CGCTCTGAAAAGCGGGAACCTCGTGG'
        'CGCTTTATTAA'
Example 32. Splitting a Nucleotide Sequence by Specifying a Pattern and Position
  1. Enter a nucleotide sequence.

    Seq = 'AGAGGGGTACGCGCTCTGAAAAGCGGGAACCTCGTGGCGCTTTATTAA';
  2. Use the sequence pattern GCGC with the point of cleavage at position 3 to cleave the nucleotide sequence.

    fragmentsPattern = restrict(Seq,'GCGC',3)

    MATLAB returns:

    fragmentsPattern = 
    
        'AGAGGGGTACGCG'
        'CTCTGAAAAGCGGGAACCTCGTGGCG'
        'CTTTATTAA'
Example 33. Splitting a Nucleotide Sequence by Specifying a Regular Expression for the Pattern
  1. Enter a nucleotide sequence.

    Seq = 'AGAGGGGTACGCGCTCTGAAAAGCGGGAACCTCGTGGCGCTTTATTAA';
  2. Use a regular expression to specify the sequence pattern.

    fragmentsRegExp = restrict(Seq,'GCG[^C]',3)

    MATLAB returns:

    fragmentsRegExp = 
    
        'AGAGGGGTACGCGCTCTGAAAAGCG'
        'GGAACCTCGTGGCGCTTTATTAA'
Example 34. Returning the Cutting Sites and Fragment Lengths
  1. Enter a nucleotide sequence.

    Seq = 'AGAGGGGTACGCGCTCTGAAAAGCGGGAACCTCGTGGCGCTTTATTAA';
  2. Capture the cutting sites and fragment lengths as well as the fragments.

    [fragments, cut_sites, lengths] = restrict(Seq,'HspAI')

    MATLAB returns:

    fragments = 
        'AGAGGGGTACG'
        'CGCTCTGAAAAGCGGGAACCTCGTGG'
        'CGCTTTATTAA'
    
    cut_sites =
         0
        11
        37
    
    lengths =
        11
        26
        11
Example 35. Splitting a Double-Stranded Nucleotide Sequence

Some enzymes specify cutting rules for both a strand and its complement strand. restrict applies the cutting rule only for the 5' —> 3' strand. You can apply this rule manually for the complement strand.

  1. Enter a nucleotide sequence.

    seq = 'CCCGCNNNNNNN';
    

  2. Use the seqcomplement function to determine the complement strand, which is in the 3' —> 5' direction.

    seqc = seqcomplement(seq)
    

    MATLAB returns:

    seqc =
    
    GGGCGNNNNNNN
    
  3. Cut the first strand using the restriction enzyme FauI (which specifies a recognition sequence pattern of CCCGC and a cleavage position of 9).

    cuts_strand1 = restrict(seq, 'FauI')
    

    MATLAB returns:

    cuts_strand1 = 
    
        'CCCGCNNNN'
        'NNN'
    
  4. Cut the complement strand according the rule specified by FauI (which specifies a recognition sequence pattern of GGGCG with the point of cleavage at position 11).

    cuts_strand2 = restrict(seqc, 'GGGCG', 11)
    

    MATLAB returns:

    cuts_strand2 = 
    
        'GGGCGNNNNNN'
        'N'

References

[1] Roberts, R.J., Vincze, T., Posfai, J., and Macelis, D. (2007). REBASE—enzymes and genes for DNA restriction and modification. Nucl. Acids Res. 35, D269–D270.

[2] Official REBASE Web site: http://rebase.neb.com/rebase/rebase.html.

Version History

Introduced before R2006a