prettyseq

 

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

Write a nucleotide sequence and its translation to file

Description

prettyseq reads a nucleotide sequence and writes an output file containing in a clean format the sequence with the translation (within specified ranges) displayed beneath it. The translated nucleic acid region is given lower-case letters with the rest of the input sequence left in the input case. A specified codon usage table is used to translate the codons.

Usage

Here is a sample session with prettyseq


% prettyseq 
Write a nucleotide sequence and its translation to file
Input nucleotide sequence: tembl:x13776
Range(s) to translate [1-2167]: 135-1292
Output file [x13776.prettyseq]: 

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

Command line arguments

Write a nucleotide sequence and its translation to file
Version: EMBOSS:6.5.0.0

   Standard (Mandatory) qualifiers:
  [-sequence]          sequence   Nucleotide sequence filename and optional
                                  format, or reference (input USA)
   -range              range      [Whole sequence] Range(s) to translate
  [-outfile]           outfile    [*.prettyseq] Output file name

   Additional (Optional) qualifiers:
   -table              menu       [0] Genetic code to use (Values: 0
                                  (Standard); 1 (Standard (with alternative
                                  initiation codons)); 2 (Vertebrate
                                  Mitochondrial); 3 (Yeast Mitochondrial); 4
                                  (Mold, Protozoan, Coelenterate Mitochondrial
                                  and Mycoplasma/Spiroplasma); 5
                                  (Invertebrate Mitochondrial); 6 (Ciliate
                                  Macronuclear and Dasycladacean); 9
                                  (Echinoderm Mitochondrial); 10 (Euplotid
                                  Nuclear); 11 (Bacterial); 12 (Alternative
                                  Yeast Nuclear); 13 (Ascidian Mitochondrial);
                                  14 (Flatworm Mitochondrial); 15
                                  (Blepharisma Macronuclear); 16
                                  (Chlorophycean Mitochondrial); 21 (Trematode
                                  Mitochondrial); 22 (Scenedesmus obliquus);
                                  23 (Thraustochytrium Mitochondrial))
   -[no]ruler          boolean    [Y] Add a ruler
   -[no]plabel         boolean    [Y] Number translations
   -[no]nlabel         boolean    [Y] Number DNA sequence

   Advanced (Unprompted) qualifiers:
   -width              integer    [60] Width of screen (Integer 10 or more)

   Associated qualifiers:

   "-sequence" associated qualifiers
   -sbegin1            integer    Start of the sequence to be used
   -send1              integer    End of the 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
   -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
   -odirectory2        string     Output directory

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

Qualifier Type Description Allowed values Default
Standard (Mandatory) qualifiers
[-sequence]
(Parameter 1)
sequence Nucleotide sequence filename and optional format, or reference (input USA) Readable sequence Required
-range range Range(s) to translate Sequence range Whole sequence
[-outfile]
(Parameter 2)
outfile Output file name Output file <*>.prettyseq
Additional (Optional) qualifiers
-table list Genetic code to use
0 (Standard)
1 (Standard (with alternative initiation codons))
2 (Vertebrate Mitochondrial)
3 (Yeast Mitochondrial)
4 (Mold, Protozoan, Coelenterate Mitochondrial and Mycoplasma/Spiroplasma)
5 (Invertebrate Mitochondrial)
6 (Ciliate Macronuclear and Dasycladacean)
9 (Echinoderm Mitochondrial)
10 (Euplotid Nuclear)
11 (Bacterial)
12 (Alternative Yeast Nuclear)
13 (Ascidian Mitochondrial)
14 (Flatworm Mitochondrial)
15 (Blepharisma Macronuclear)
16 (Chlorophycean Mitochondrial)
21 (Trematode Mitochondrial)
22 (Scenedesmus obliquus)
23 (Thraustochytrium Mitochondrial)
0
-[no]ruler boolean Add a ruler Boolean value Yes/No Yes
-[no]plabel boolean Number translations Boolean value Yes/No Yes
-[no]nlabel boolean Number DNA sequence Boolean value Yes/No Yes
Advanced (Unprompted) qualifiers
-width integer Width of screen Integer 10 or more 60
Associated qualifiers
"-sequence" associated sequence qualifiers
-sbegin1
-sbegin_sequence
integer Start of the sequence to be used Any integer value 0
-send1
-send_sequence
integer End of the 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
-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 outfile qualifiers
-odirectory2
-odirectory_outfile
string Output directory Any string  
General qualifiers
-auto boolean Turn off prompts Boolean value Yes/No N
-stdout boolean Write first file to standard output Boolean value Yes/No N
-filter boolean Read first file from standard input, write first file to standard output Boolean value Yes/No N
-options boolean Prompt for standard and additional values Boolean value Yes/No N
-debug boolean Write debug output to program.dbg Boolean value Yes/No N
-verbose boolean Report some/full command line options Boolean value Yes/No Y
-help boolean Report command line options and exit. More information on associated and general qualifiers can be found with -help -verbose Boolean value Yes/No N
-warning boolean Report warnings Boolean value Yes/No Y
-error boolean Report errors Boolean value Yes/No Y
-fatal boolean Report fatal errors Boolean value Yes/No Y
-die boolean Report dying program messages Boolean value Yes/No Y
-version boolean Report version number and exit Boolean value Yes/No N

Input file format

prettyseq reads one or more nucleotide sequences.

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

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: gff (gff3), gff2, embl (em), genbank (gb, refseq), ddbj, refseqp, pir (nbrf), swissprot (swiss, sw), dasgff and debug.

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

Input files for usage example

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

Database entry: tembl:x13776

ID   X13776; SV 1; linear; genomic DNA; STD; PRO; 2167 BP.
XX
AC   X13776; M43175;
XX
DT   19-APR-1989 (Rel. 19, Created)
DT   14-NOV-2006 (Rel. 89, Last updated, Version 24)
XX
DE   Pseudomonas aeruginosa amiC and amiR gene for aliphatic amidase regulation
XX
KW   aliphatic amidase regulator; amiC gene; amiR gene.
XX
OS   Pseudomonas aeruginosa
OC   Bacteria; Proteobacteria; Gammaproteobacteria; Pseudomonadales;
OC   Pseudomonadaceae; Pseudomonas.
XX
RN   [1]
RP   1167-2167
RA   Rice P.M.;
RT   ;
RL   Submitted (16-DEC-1988) to the INSDC.
RL   Rice P.M., EMBL, Postfach 10-2209, Meyerhofstrasse 1, 6900 Heidelberg, FRG.
XX
RN   [2]
RP   1167-2167
RX   DOI; 10.1016/0014-5793(89)80249-2.
RX   PUBMED; 2495988.
RA   Lowe N., Rice P.M., Drew R.E.;
RT   "Nucleotide sequence of the aliphatic amidase regulator gene (amiR) of
RT   Pseudomonas aeruginosa";
RL   FEBS Lett. 246(1-2):39-43(1989).
XX
RN   [3]
RP   1-1292
RX   PUBMED; 1907262.
RA   Wilson S., Drew R.;
RT   "Cloning and DNA sequence of amiC, a new gene regulating expression of the
RT   Pseudomonas aeruginosa aliphatic amidase, and purification of the amiC
RT   product";
RL   J. Bacteriol. 173(16):4914-4921(1991).
XX
RN   [4]
RP   1-2167
RA   Rice P.M.;
RT   ;
RL   Submitted (04-SEP-1991) to the INSDC.
RL   Rice P.M., EMBL, Postfach 10-2209, Meyerhofstrasse 1, 6900 Heidelberg, FRG.
XX
DR   GOA; Q51417.
DR   InterPro; IPR003211; AmiSUreI_transpt.
DR   UniProtKB/Swiss-Prot; Q51417; AMIS_PSEAE.


  [Part of this file has been deleted for brevity]

FT                   /note="ClaI fragment deleted in pSW36,  constitutive
FT                   phenotype"
FT   misc_feature    1
FT                   /note="last base of an XhoI site"
FT   misc_feature    648..653
FT                   /note="end of 658bp XhoI fragment, deletion in  pSW3 causes
FT                   constitutive expression of amiE"
FT   misc_difference 1281
FT                   /replace="g"
FT                   /note="conflict"
FT                   /citation=[3]
XX
SQ   Sequence 2167 BP; 363 A; 712 C; 730 G; 362 T; 0 other;
     ggtaccgctg gccgagcatc tgctcgatca ccaccagccg ggcgacggga actgcacgat        60
     ctacctggcg agcctggagc acgagcgggt tcgcttcgta cggcgctgag cgacagtcac       120
     aggagaggaa acggatggga tcgcaccagg agcggccgct gatcggcctg ctgttctccg       180
     aaaccggcgt caccgccgat atcgagcgct cgcacgcgta tggcgcattg ctcgcggtcg       240
     agcaactgaa ccgcgagggc ggcgtcggcg gtcgcccgat cgaaacgctg tcccaggacc       300
     ccggcggcga cccggaccgc tatcggctgt gcgccgagga cttcattcgc aaccgggggg       360
     tacggttcct cgtgggctgc tacatgtcgc acacgcgcaa ggcggtgatg ccggtggtcg       420
     agcgcgccga cgcgctgctc tgctacccga ccccctacga gggcttcgag tattcgccga       480
     acatcgtcta cggcggtccg gcgccgaacc agaacagtgc gccgctggcg gcgtacctga       540
     ttcgccacta cggcgagcgg gtggtgttca tcggctcgga ctacatctat ccgcgggaaa       600
     gcaaccatgt gatgcgccac ctgtatcgcc agcacggcgg cacggtgctc gaggaaatct       660
     acattccgct gtatccctcc gacgacgact tgcagcgcgc cgtcgagcgc atctaccagg       720
     cgcgcgccga cgtggtcttc tccaccgtgg tgggcaccgg caccgccgag ctgtatcgcg       780
     ccatcgcccg tcgctacggc gacggcaggc ggccgccgat cgccagcctg accaccagcg       840
     aggcggaggt ggcgaagatg gagagtgacg tggcagaggg gcaggtggtg gtcgcgcctt       900
     acttctccag catcgatacg cccgccagcc gggccttcgt ccaggcctgc catggtttct       960
     tcccggagaa cgcgaccatc accgcctggg ccgaggcggc ctactggcag accttgttgc      1020
     tcggccgcgc cgcgcaggcc gcaggcaact ggcgggtgga agacgtgcag cggcacctgt      1080
     acgacatcga catcgacgcg ccacaggggc cggtccgggt ggagcgccag aacaaccaca      1140
     gccgcctgtc ttcgcgcatc gcggaaatcg atgcgcgcgg cgtgttccag gtccgctggc      1200
     agtcgcccga accgattcgc cccgaccctt atgtcgtcgt gcataacctc gacgactggt      1260
     ccgccagcat gggcggggga ccgctcccat gagcgccaac tcgctgctcg gcagcctgcg      1320
     cgagttgcag gtgctggtcc tcaacccgcc gggggaggtc agcgacgccc tggtcttgca      1380
     gctgatccgc atcggttgtt cggtgcgcca gtgctggccg ccgccggaag ccttcgacgt      1440
     gccggtggac gtggtcttca ccagcatttt ccagaatggc caccacgacg agatcgctgc      1500
     gctgctcgcc gccgggactc cgcgcactac cctggtggcg ctggtggagt acgaaagccc      1560
     cgcggtgctc tcgcagatca tcgagctgga gtgccacggc gtgatcaccc agccgctcga      1620
     tgcccaccgg gtgctgcctg tgctggtatc ggcgcggcgc atcagcgagg aaatggcgaa      1680
     gctgaagcag aagaccgagc agctccagga ccgcatcgcc ggccaggccc ggatcaacca      1740
     ggccaaggtg ttgctgatgc agcgccatgg ctgggacgag cgcgaggcgc accagcacct      1800
     gtcgcgggaa gcgatgaagc ggcgcgagcc gatcctgaag atcgctcagg agttgctggg      1860
     aaacgagccg tccgcctgag cgatccgggc cgaccagaac aataacaaga ggggtatcgt      1920
     catcatgctg ggactggttc tgctgtacgt tggcgcggtg ctgtttctca atgccgtctg      1980
     gttgctgggc aagatcagcg gtcgggaggt ggcggtgatc aacttcctgg tcggcgtgct      2040
     gagcgcctgc gtcgcgttct acctgatctt ttccgcagca gccgggcagg gctcgctgaa      2100
     ggccggagcg ctgaccctgc tattcgcttt tacctatctg tgggtggccg ccaaccagtt      2160
     cctcgag                                                                2167
//

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

The format of the range file is:

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: x13776.prettyseq

PRETTYSEQ of X13776 from 1 to 2167

           ---------|---------|---------|---------|---------|---------|
         1 GGTACCGCTGGCCGAGCATCTGCTCGATCACCACCAGCCGGGCGACGGGAACTGCACGAT 60
                                                                        

           ---------|---------|---------|---------|---------|---------|
        61 CTACCTGGCGAGCCTGGAGCACGAGCGGGTTCGCTTCGTACGGCGCTGAGCGACAGTCAC 120
                                                                        

           ---------|---------|---------|---------|---------|---------|
       121 AGGAGAGGAAACGGatgggatcgcaccaggagcggccgctgatcggcctgctgttctccg 180
         1               M  G  S  H  Q  E  R  P  L  I  G  L  L  F  S  E 16

           ---------|---------|---------|---------|---------|---------|
       181 aaaccggcgtcaccgccgatatcgagcgctcgcacgcgtatggcgcattgctcgcggtcg 240
        17   T  G  V  T  A  D  I  E  R  S  H  A  Y  G  A  L  L  A  V  E 36

           ---------|---------|---------|---------|---------|---------|
       241 agcaactgaaccgcgagggcggcgtcggcggtcgcccgatcgaaacgctgtcccaggacc 300
        37   Q  L  N  R  E  G  G  V  G  G  R  P  I  E  T  L  S  Q  D  P 56

           ---------|---------|---------|---------|---------|---------|
       301 ccggcggcgacccggaccgctatcggctgtgcgccgaggacttcattcgcaaccgggggg 360
        57   G  G  D  P  D  R  Y  R  L  C  A  E  D  F  I  R  N  R  G  V 76

           ---------|---------|---------|---------|---------|---------|
       361 tacggttcctcgtgggctgctacatgtcgcacacgcgcaaggcggtgatgccggtggtcg 420
        77   R  F  L  V  G  C  Y  M  S  H  T  R  K  A  V  M  P  V  V  E 96

           ---------|---------|---------|---------|---------|---------|
       421 agcgcgccgacgcgctgctctgctacccgaccccctacgagggcttcgagtattcgccga 480
        97   R  A  D  A  L  L  C  Y  P  T  P  Y  E  G  F  E  Y  S  P  N 116

           ---------|---------|---------|---------|---------|---------|
       481 acatcgtctacggcggtccggcgccgaaccagaacagtgcgccgctggcggcgtacctga 540
       117   I  V  Y  G  G  P  A  P  N  Q  N  S  A  P  L  A  A  Y  L  I 136

           ---------|---------|---------|---------|---------|---------|
       541 ttcgccactacggcgagcgggtggtgttcatcggctcggactacatctatccgcgggaaa 600
       137   R  H  Y  G  E  R  V  V  F  I  G  S  D  Y  I  Y  P  R  E  S 156

           ---------|---------|---------|---------|---------|---------|
       601 gcaaccatgtgatgcgccacctgtatcgccagcacggcggcacggtgctcgaggaaatct 660
       157   N  H  V  M  R  H  L  Y  R  Q  H  G  G  T  V  L  E  E  I  Y 176

           ---------|---------|---------|---------|---------|---------|
       661 acattccgctgtatccctccgacgacgacttgcagcgcgccgtcgagcgcatctaccagg 720
       177   I  P  L  Y  P  S  D  D  D  L  Q  R  A  V  E  R  I  Y  Q  A 196



  [Part of this file has been deleted for brevity]

      1441 GCCGGTGGACGTGGTCTTCACCAGCATTTTCCAGAATGGCCACCACGACGAGATCGCTGC 1500
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1501 GCTGCTCGCCGCCGGGACTCCGCGCACTACCCTGGTGGCGCTGGTGGAGTACGAAAGCCC 1560
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1561 CGCGGTGCTCTCGCAGATCATCGAGCTGGAGTGCCACGGCGTGATCACCCAGCCGCTCGA 1620
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1621 TGCCCACCGGGTGCTGCCTGTGCTGGTATCGGCGCGGCGCATCAGCGAGGAAATGGCGAA 1680
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1681 GCTGAAGCAGAAGACCGAGCAGCTCCAGGACCGCATCGCCGGCCAGGCCCGGATCAACCA 1740
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1741 GGCCAAGGTGTTGCTGATGCAGCGCCATGGCTGGGACGAGCGCGAGGCGCACCAGCACCT 1800
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1801 GTCGCGGGAAGCGATGAAGCGGCGCGAGCCGATCCTGAAGATCGCTCAGGAGTTGCTGGG 1860
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1861 AAACGAGCCGTCCGCCTGAGCGATCCGGGCCGACCAGAACAATAACAAGAGGGGTATCGT 1920
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1921 CATCATGCTGGGACTGGTTCTGCTGTACGTTGGCGCGGTGCTGTTTCTCAATGCCGTCTG 1980
                                                                        

           ---------|---------|---------|---------|---------|---------|
      1981 GTTGCTGGGCAAGATCAGCGGTCGGGAGGTGGCGGTGATCAACTTCCTGGTCGGCGTGCT 2040
                                                                        

           ---------|---------|---------|---------|---------|---------|
      2041 GAGCGCCTGCGTCGCGTTCTACCTGATCTTTTCCGCAGCAGCCGGGCAGGGCTCGCTGAA 2100
                                                                        

           ---------|---------|---------|---------|---------|---------|
      2101 GGCCGGAGCGCTGACCCTGCTATTCGCTTTTACCTATCTGTGGGTGGCCGCCAACCAGTT 2160
                                                                        

           -------
      2161 CCTCGAG 2167
                   

Data files

The codon usage table is read by default from "Ehum.cut" in the 'data/CODONS' directory of the EMBOSS distribution. If the name of a codon usage file is specified on the command line, then this file will first be searched for in the current directory and then in the 'data/CODONS' directory of the EMBOSS distribution.

EMBOSS data files are distributed with the application and stored in the standard EMBOSS data directory, which is defined by the EMBOSS environment variable EMBOSS_DATA.

To see the available EMBOSS data files, run:

% embossdata -showall

To fetch one of the data files (for example 'Exxx.dat') into your current directory for you to inspect or modify, run:


% embossdata -fetch -file Exxx.dat

Users can provide their own data files in their own directories. Project specific files can be put in the current directory, or for tidier directory listings in a subdirectory called ".embossdata". Files for all EMBOSS runs can be put in the user's home directory, or again in a subdirectory called ".embossdata".

The directories are searched in the following order:

Notes

By default, the base and residue numbers of the sequence and its translation are shown beside the sequences in the output. There are options to change this behaviour.

The translation will be shown in a number of sequence regions only. The ranges are specified with the -range qualifier. As an alternative to specifying a set of ranges at the command-line, a range file containing such range data may be specified (see "Input File Format").

References

None.

Warnings

None.

Diagnostic Error Messages

"Range outside length of sequence" - this is self explanatory. You should specify a range of sequences to translate that is within the length of the input sequence.

Exit status

It always exits with a status of 0.

Known bugs

None.

See also

Program name Description
abiview Display the trace in an ABI sequencer file
backtranambig Back-translate a protein sequence to ambiguous nucleotide sequence
backtranseq Back-translate a protein sequence to a nucleotide sequence
checktrans Report STOP codons and ORF statistics of a protein
cirdna Draw circular map of DNA constructs
coderet Extract CDS, mRNA and translations from feature tables
iep Calculate the isoelectric point of proteins
lindna Draw linear maps of DNA constructs
pepinfo Plot amino acid properties of a protein sequence in parallel
pepnet Draw a helical net for a protein sequence
pepwheel Draw a helical wheel diagram for a protein sequence
plotorf Plot potential open reading frames in a nucleotide sequence
prettyplot Draw a sequence alignment with pretty formatting
remap Display restriction enzyme binding sites in a nucleotide sequence
showfeat Display features of a sequence in pretty format
showorf Display a nucleotide sequence and translation in pretty format
showpep Display protein sequences with features in pretty format
showseq Display sequences with features in pretty format
sixpack Display a DNA sequence with 6-frame translation and ORFs
transeq Translate nucleic acid sequences

showseq has more options for specifying various ways of displaying a sequence, with or without various ways of translating it.

Author(s)

Alan Bleasby
European Bioinformatics Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge CB10 1SD, UK

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

History

Written (1999) - Alan Bleasby

Target users

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

Comments

None