.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Boulder::Genbank 3pm" .TH Boulder::Genbank 3pm "2021-01-05" "perl v5.32.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Boulder::Genbank \- Fetch Genbank data records as parsed Boulder Stones .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Boulder::Genbank \& \& # network access via Entrez \& $gb = Boulder::Genbank\->newFh( qw(M57939 M28274 L36028) ); \& \& while ($data = <$gb>) { \& print $data\->Accession; \& \& @introns = $data\->features\->Intron; \& print "There are ",scalar(@introns)," introns.\en"; \& $dna = $data\->Sequence; \& print "The dna is ",length($dna)," bp long.\en"; \& \& my @features = $data\->features(\-type=>[ qw(Exon Source Satellite) ], \& \-pos=>[90,310] ); \& foreach (@features) { \& print $_\->Type,"\en"; \& print $_\->Position,"\en"; \& print $_\->Gene,"\en"; \& } \& } \& \& # another syntax \& $gb = new Boulder::Genbank(\-accessor=>\*(AqEntrez\*(Aq, \& \-fetch => [qw/M57939 M28274 L36028/]); \& \& # local access via Yank \& $gb = new Boulder::Genbank(\-accessor=>\*(AqYank\*(Aq, \& \-fetch=>[qw/M57939 M28274 L36028/]); \& while (my $s = $gb\->get) { \& # etc. \& } \& \& # parse a file of Genbank records \& $gb = new Boulder::Genbank(\-accessor=>\*(AqFile\*(Aq, \& \-fetch => \*(Aq/usr/local/db/gbpri3.seq\*(Aq); \& while (my $s = $gb\->get) { \& # etc. \& } \& \& # parse flatfile records yourself \& open (GB,"/usr/local/db/gbpri3.seq"); \& local $/ = "//\en"; \& while () { \& my $s = Boulder::Genbank\->parse($_); \& # etc. \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Boulder::Genbank provides retrieval and parsing services for \s-1NCBI\s0 Genbank-format records. It returns Genbank entries in Stone format, allowing easy access to the various fields and values. Boulder::Genbank is a descendent of Boulder::Stream, and provides a stream-like interface to a series of Stone objects. .PP >> \s-1IMPORTANT NOTE\s0 << .PP As of January 2002, \s-1NCBI\s0 has changed their Batch Entrez interface. I have modified Boulder::Genbank so as to use a \*(L"demo\*(R" interface, which fixes things, but this isn't guaranteed in the long run. .PP I have written to \s-1NCBI,\s0 and they may fix this \*(-- or they may not. .PP >> \s-1IMPORTANT NOTE\s0 << .PP Access to Genbank is provided by three different \fIaccessors\fR, which together give access to remote and local Genbank databases. When you create a new Boulder::Genbank stream, you provide one of the three accessors, along with accessor-specific parameters that control what entries to fetch. The three accessors are: .IP "Entrez" 4 .IX Item "Entrez" This provides access to NetEntrez, accessing the most recent Genbank information directly from \s-1NCBI\s0's Web site. The parameters passed to this accessor are either a series of Genbank accession numbers, or an Entrez query (see http://www.ncbi.nlm.nih.gov/Entrez/linking.html). If you provide a list of accession numbers, the stream will return a series of stones corresponding to the numbers. Otherwise, if you provided an Entrez query, the entries returned will be in the order returned by Entez. .IP "File" 4 .IX Item "File" This provides access to local Genbank entries by reading from a flat file (typically one of the .seq files downloadable from \s-1NCBI\s0's Web site). The stream will return a Stone corresponding to each of the entries in the file, starting from the top of the file and working downward. The parameter in this case is the path to the local file. .IP "Yank" 4 .IX Item "Yank" This provides access to local Genbank entries using Will Fitzhugh's Yank program. Yank provides fast indexed access to a Genbank flat file using the accession number as the key. The parameter passed to the Yank accessor is a list of accession numbers. Stones will be returned in the requested order. By default the yank binary lives in /usr/local/bin/yank. To support other locations, you may define the environment variable \s-1YANK\s0 to contain the full path. .PP It is also possible to parse a single Genbank entry from a text string stored in a scalar variable, returning a Stone object. .SS "Boulder::Genbank methods" .IX Subsection "Boulder::Genbank methods" This section lists the public methods that the \fIBoulder::Genbank\fR class makes available. .IP "\fBnew()\fR" 4 .IX Item "new()" .Vb 3 \& # Network fetch via Entrez, with accession numbers \& $gb=new Boulder::Genbank(\-accessor => \*(AqEntrez\*(Aq, \& \-fetch => [qw/M57939 M28274 L36028/]); \& \& # Same, but shorter and uses \-> operator \& $gb = Boulder::Genbank\->new qw(M57939 M28274 L36028); \& \& # Network fetch via Entrez, with a query \& \& # Network fetch via Entrez, with a query \& $query = \*(AqHomo sapiens[Organism] AND EST[Keyword]\*(Aq; \& $gb=new Boulder::Genbank(\-accessor => \*(AqEntrez\*(Aq, \& \-fetch => $query); \& \& # Local fetch via Yank, with accession numbers \& $gb=new Boulder::Genbank(\-accessor => \*(AqYank\*(Aq, \& \-fetch => [qw/M57939 M28274 L36028/]); \& \& # Local fetch via File \& $gb=new Boulder::Genbank(\-accessor => \*(AqFile\*(Aq, \& \-fetch => \*(Aq/usr/local/genbank/gbpri3.seq\*(Aq); .Ve .Sp The \fBnew()\fR method creates a new \fIBoulder::Genbank\fR stream on the accessor provided. The three possible accessors are \fBEntrez\fR, \&\fBYank\fR and \fBFile\fR. If successful, the method returns the stream object. Otherwise it returns undef. .Sp \&\fBnew()\fR takes the following arguments: .Sp .Vb 4 \& \-accessor Name of the accessor to use \& \-fetch Parameters to pass to the accessor \& \-proxy Path to an HTTP proxy, used when using \& the Entrez accessor over a firewall. .Ve .Sp Specify the accessor to use with the \fB\-accessor\fR argument. If not specified, it defaults to \fBEntrez\fR. .Sp \&\fB\-fetch\fR is an accessor-specific argument. The possibilities are: .Sp For \fBEntrez\fR, the \fB\-fetch\fR argument may point to a scalar, in which case it is interpreted as an Entrez query string. See http://www.ncbi.nlm.nih.gov/Entrez/linking.html for a description of the query syntax. Alternatively, \fB\-fetch\fR may point to an array reference, in which case it is interpreted as a list of accession numbers to retrieve. If \fB\-fetch\fR points to a hash, it is interpreted as extended information. See \*(L"Extended Entrez Parameters\*(R" below. .Sp For \fBYank\fR, the \fB\-fetch\fR argument must point to an array reference containing the accession numbers to retrieve. .Sp For \fBFile\fR, the \fB\-fetch\fR argument must point to a string-valued scalar, which will be interpreted as the path to the file to read Genbank entries from. .Sp For Entrez (and Entrez only) Boulder::Genbank allows you to use a shortcut syntax in which you provde \fBnew()\fR with a list of accession numbers: .Sp .Vb 1 \& $gb = new Boulder::Genbank(\*(AqM57939\*(Aq,\*(AqM28274\*(Aq,\*(AqL36028\*(Aq); .Ve .IP "\fBnewFh()\fR" 4 .IX Item "newFh()" This works like \fBnew()\fR, but returns a filehandle. To recover each GenBank record read from the filehandle with the <> operator: .Sp .Vb 4 \& $fh = Boulder::GenBank\->newFh(\*(AqM57939\*(Aq,\*(AqM28274\*(Aq,\*(AqL36028\*(Aq); \& while ($record = <$fh>) { \& print $record\->asString; \& } .Ve .IP "\fBget()\fR" 4 .IX Item "get()" The \fBget()\fR method is inherited from \fIBoulder::Stream\fR, and simply returns the next parsed Genbank Stone, or undef if there is nothing more to fetch. It has the same semantics as the parent class, including the ability to restrict access to certain top-level tags. .Sp The object returned is a Stone::GB_Sequence object, which is a descendent of Stone. .IP "\fBput()\fR" 4 .IX Item "put()" The \fBput()\fR method is inherited from the parent Boulder::Stream class, and will write the passed Stone to standard output in Boulder format. This means that it is currently not possible to write a Boulder::Genbank object back into Genbank flatfile form. .SS "Extended Entrez Parameters" .IX Subsection "Extended Entrez Parameters" The Entrez accessor recognizes extended parameters that allow you the ability to customize the search. Instead of passing a query string scalar or a list of accession numbers as the \fB\-fetch\fR argument, pass a hash reference. The hashref should contain one or more of the following keys: .IP "\fB\-query\fR" 4 .IX Item "-query" The Entrez query to process. .IP "\fB\-accession\fR" 4 .IX Item "-accession" The list of accession numbers to fetch, as an array ref. .IP "\fB\-db\fR" 4 .IX Item "-db" The database to search. This is a single-letter database code selected from the following list: .Sp .Vb 4 \& m MEDLINE \& p Protein \& n Nucleotide \& s Popset .Ve .IP "\fB\-proxy\fR" 4 .IX Item "-proxy" An \s-1HTTP\s0 proxy to use. For example: .Sp .Vb 1 \& \-proxy => http://www.firewall.com:9000 .Ve .Sp If you think you need this, get the correct \s-1URL\s0 from your system administrator. .PP As an example, here's how to search for ESTs from Oryza sativa that have been entered or modified since 1999. .PP .Vb 4 \& my $gb = new Boulder::Genbank( \-accessor=>Entrez, \& \-query=>\*(AqOryza sativa[Organism] AND EST[Keyword] AND 1999[MDAT]\*(Aq, \& \-db => \*(Aqn\*(Aq \& }); .Ve .SH "METHODS DEFINED BY THE GENBANK STONE OBJECT" .IX Header "METHODS DEFINED BY THE GENBANK STONE OBJECT" Each record returned from the Boulder::Genbank stream defines a set of methods that correspond to features and other fields in the Genbank flat file record. Stone::GB_Sequence gives the full details, but they are listed for reference here: .ie n .SS "$length = $entry\->length" .el .SS "\f(CW$length\fP = \f(CW$entry\fP\->length" .IX Subsection "$length = $entry->length" Get the length of the sequence. .ie n .SS "$start = $entry\->start" .el .SS "\f(CW$start\fP = \f(CW$entry\fP\->start" .IX Subsection "$start = $entry->start" Get the start position of the sequence, currently always \*(L"1\*(R". .ie n .SS "$end = $entry\->end" .el .SS "\f(CW$end\fP = \f(CW$entry\fP\->end" .IX Subsection "$end = $entry->end" Get the end position of the sequence, currently always the same as the length. .ie n .SS "@feature_list = $entry\->features(\-pos=>[50,450],\-type=>['\s-1CDS\s0','Exon'])" .el .SS "\f(CW@feature_list\fP = \f(CW$entry\fP\->features(\-pos=>[50,450],\-type=>['\s-1CDS\s0','Exon'])" .IX Subsection "@feature_list = $entry->features(-pos=>[50,450],-type=>['CDS','Exon'])" \&\fBfeatures()\fR will search the entry feature list for those features that meet certain criteria. The criteria are specified using the \fB\-pos\fR and/or \fB\-type\fR argument names, as shown below. .IP "\-pos" 4 .IX Item "-pos" Provide a position or range of positions which the feature must \&\fBoverlap\fR. A single position is specified in this way: .Sp .Vb 1 \& \-pos => 1500; # feature must overlap postion 1500 .Ve .Sp or a range of positions in this way: .Sp .Vb 1 \& \-pos => [1000,1500]; # 1000 to 1500 inclusive .Ve .Sp If no criteria are provided, then \fBfeatures()\fR returns all the features, and is equivalent to calling the \fBFeatures()\fR accessor. .IP "\-type, \-types" 4 .IX Item "-type, -types" Filter the list of features by type or a set of types. Matches are case-insensitive, so \*(L"exon\*(R", \*(L"Exon\*(R" and \*(L"\s-1EXON\*(R"\s0 are all equivalent. You may call with a single type as in: .Sp .Vb 1 \& \-type => \*(AqExon\*(Aq .Ve .Sp or with a list of types, as in .Sp .Vb 1 \& \-types => [\*(AqExon\*(Aq,\*(AqCDS\*(Aq] .Ve .Sp The names \*(L"\-type\*(R" and \*(L"\-types\*(R" can be used interchangeably. .ie n .SS "$seqObj = $entry\->bioSeq;" .el .SS "\f(CW$seqObj\fP = \f(CW$entry\fP\->bioSeq;" .IX Subsection "$seqObj = $entry->bioSeq;" Returns a Bio::Seq object from the Bioperl project. Dies with an error message unless the Bio::Seq module is installed. .SH "OUTPUT TAGS" .IX Header "OUTPUT TAGS" The tags returned by the parsing operation are taken from the \s-1NCBI ASN.1\s0 schema. For consistency, they are normalized so that the initial letter is capitalized, and all subsequent letters are lowercase. This section contains an abbreviated list of the most useful/common tags. See \*(L"The \s-1NCBI\s0 Data Model\*(R", by James Ostell and Jonathan Kans in \*(L"Bioinformatics: A Practical Guide to the Analysis of Genes and Proteins\*(R" (Eds. A. Baxevanis and F. Ouellette), pp 121\-144 for the full listing. .SS "Top-Level Tags" .IX Subsection "Top-Level Tags" These are tags that appear at the top level of the parsed Genbank entry. .IP "Accession" 4 .IX Item "Accession" The accession number of this entry. Because of the vagaries of the Genbank data model, an entry may have multiple accession numbers (e.g. after a merging operation). Accession may therefore be a multi-valued tag. .Sp Example: .Sp .Vb 1 \& my $accessionNo = $s\->Accession; .Ve .IP "Authors" 4 .IX Item "Authors" The list of authors, as they appear on the \s-1AUTHORS\s0 line of the Genbank record. No attempt is made to parse them into individual authors. .IP "Basecount" 4 .IX Item "Basecount" The nucleotide basecount for the entry. It is presented as a Boulder Stone with keys \*(L"a\*(R", \*(L"c\*(R", \*(L"t\*(R" and \*(L"g\*(R". Example: .Sp .Vb 5 \& my $A = $s\->Basecount\->A; \& my $C = $s\->Basecount\->C; \& my $G = $s\->Basecount\->G; \& my $T = $s\->Basecount\->T; \& print "GC content is ",($G+$C)/($A+$C+$G+$T),"\en"; .Ve .IP "Blob" 4 .IX Item "Blob" The entire flatfile record as an unparsed chunk of text (a \*(L"blob\*(R"). This is a handy way of reassembling the record for human inspection. .IP "Comment" 4 .IX Item "Comment" The \s-1COMMENT\s0 line from the Genbank record. .IP "Definition" 4 .IX Item "Definition" The \s-1DEFINITION\s0 line from the Genbank record, unmodified. .IP "Features" 4 .IX Item "Features" The \s-1FEATURES\s0 table. This is a complex stone object with multiple subtags. See the \*(L"The Features Tag\*(R" for details. .IP "Journal" 4 .IX Item "Journal" The \s-1JOURNAL\s0 line from the Genbank record, unmodified. .IP "Keywords" 4 .IX Item "Keywords" The \s-1KEYWORDS\s0 line from the Genbank record, unmodified. No attempt is made to parse the keywords into separate values. .Sp Example: .Sp .Vb 1 \& my $keywords = $s\->Keywords .Ve .IP "Locus" 4 .IX Item "Locus" The \s-1LOCUS\s0 line from the Genbank record. It is not further parsed. .IP "Medline, Nid" 4 .IX Item "Medline, Nid" References to other database accession numbers. .IP "Organism" 4 .IX Item "Organism" The taxonomic name of the organism from which this entry was derived. This line is taken from the Genbank entry unmodified. See the \s-1NCBI\s0 data model documentation for an explanation of their taxonomic syntax. .IP "Reference" 4 .IX Item "Reference" The \s-1REFERENCE\s0 line from the Genbank entry. There are often multiple Reference lines. Example: .Sp .Vb 1 \& my @references = $s\->Reference; .Ve .IP "Sequence" 4 .IX Item "Sequence" The \s-1DNA\s0 or \s-1RNA\s0 sequence of the entry. This is presented as a single lower-case string, with all base numbers and formatting characters removed. .IP "Source" 4 .IX Item "Source" The entry's \s-1SOURCE\s0 field; often giving clues on how the sequencing was performed. .IP "Title" 4 .IX Item "Title" The \s-1TITLE\s0 field from the paper describing this entry, if any. .SS "The Features Tag" .IX Subsection "The Features Tag" The Features tag points to a Stone record that contains multiple subtags. Each subtag is the name of a feature which points, in turn, to a Stone that describes the feature's location and other attributes. The full list of feature is beyond this document, but the following are the features that are most often seen: .PP .Vb 10 \& Cds a CDS \& Intron an intron \& Exon an exon \& Gene a gene \& Mrna an mRNA \& Polya_site a putative polyadenylation signal \& Repeat_unit a repetitive region \& Source More information about the organism and cell \& type the sequence was derived from \& Satellite a microsatellite (dinucleotide repeat) .Ve .PP Each feature will contain one or more of the following subtags: .IP "DB_xref" 4 .IX Item "DB_xref" A cross-reference to another database in the form DB_NAME:accession_number. See the \s-1NCBI\s0 Web site for a description of these cross references. .IP "Evidence" 4 .IX Item "Evidence" The evidence for this feature, either \*(L"experimental\*(R" or \*(L"predicted\*(R". .IP "Gene" 4 .IX Item "Gene" If the feature involves a gene, this will be the gene's name (or one of its names). This subtag is often seen in \*(L"Gene\*(R" and Cds features. .Sp Example: .Sp .Vb 5 \& foreach ($s\->Features\->Cds) { \& my $gene = $_\->Gene; \& my $position = $_\->Position; \& Print "Gene $gene ($position)\en"; \& } .Ve .IP "Map" 4 .IX Item "Map" If the feature is mapped, this provides a map position, usually as a cytogenetic band. .IP "Note" 4 .IX Item "Note" A grab-back for various text notes. .IP "Number" 4 .IX Item "Number" When multiple features of this type occur, this field is used to number them. Ordinarily this field is not needed because Boulder::Genbank preserves the order of features. .IP "Organism" 4 .IX Item "Organism" If the feature is Source, this provides the source organism. .IP "Position" 4 .IX Item "Position" The position of this feature, usually expresed as a range (1970..1975). .IP "Product" 4 .IX Item "Product" The protein product of the feature, if applicable, as a text string. .IP "Translation" 4 .IX Item "Translation" The protein translation of the feature, if applicable. .SH "SEE ALSO" .IX Header "SEE ALSO" Boulder, Boulder::Blast .SH "AUTHOR" .IX Header "AUTHOR" Lincoln Stein . .PP Copyright (c) 1997\-2000 Lincoln D. Stein .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See \s-1DISCLAIMER\s0.txt for disclaimers of warranty. .SH "EXAMPLE GENBANK OBJECT" .IX Header "EXAMPLE GENBANK OBJECT" The following is an excerpt from a moderately complex Genbank Stone. The Sequence line and several other long lines have been truncated for readability. .PP .Vb 10 \& Authors=Spritz,R.A., Strunk,K., Surowy,C.S.O., Hoch,S., Barton,D.E. and Francke,U. \& Authors=Spritz,R.A., Strunk,K., Surowy,C.S. and Mohrenweiser,H.W. \& Locus=HUMRNP7011 2155 bp DNA PRI 03\-JUL\-1991 \& Accession=M57939 \& Accession=J04772 \& Accession=M57733 \& Keywords=ribonucleoprotein antigen. \& Sequence=aagcttttccaggcagtgcgagatagaggagcgcttgagaaggcaggttttgcagcagacggcagtgacagcccag... \& Definition=Human small nuclear ribonucleoprotein (U1\-70K) gene, exon 10 and 11. \& Journal=Nucleic Acids Res. 15, 10373\-10391 (1987) \& Journal=Genomics 8, 371\-379 (1990) \& Nid=g337441 \& Medline=88096573 \& Medline=91065657 \& Features={ \& Polya_site={ \& Evidence=experimental \& Position=1989 \& Gene=U1\-70K \& } \& Polya_site={ \& Position=1990 \& Gene=U1\-70K \& } \& Polya_site={ \& Evidence=experimental \& Position=1992 \& Gene=U1\-70K \& } \& Polya_site={ \& Evidence=experimental \& Position=1998 \& Gene=U1\-70K \& } \& Source={ \& Organism=Homo sapiens \& Db_xref=taxon:9606 \& Position=1..2155 \& Map=19q13.3 \& } \& Cds={ \& Codon_start=1 \& Product=ribonucleoprotein antigen \& Db_xref=PID:g337445 \& Position=join(M57929:329..475,M57930:183..245,M57930:358..412, ... \& Gene=U1\-70K \& Translation=MTQFLPPNLLALFAPRDPIPYLPPLEKLPHEKHHNQPYCGIAPYIREFEDPRDAPPPTR... \& } \& Cds={ \& Codon_start=1 \& Product=ribonucleoprotein antigen \& Db_xref=PID:g337444 \& Evidence=experimental \& Position=join(M57929:329..475,M57930:183..245,M57930:358..412, ... \& Gene=U1\-70K \& Translation=MTQFLPPNLLALFAPRDPIPYLPPLEKLPHEKHHNQPYCGIAPYIREFEDPR... \& } \& Polya_signal={ \& Position=1970..1975 \& Note=putative \& Gene=U1\-70K \& } \& Intron={ \& Evidence=experimental \& Position=1100..1208 \& Gene=U1\-70K \& } \& Intron={ \& Number=10 \& Evidence=experimental \& Position=1100..1181 \& Gene=U1\-70K \& } \& Intron={ \& Number=9 \& Evidence=experimental \& Position=order(M57937:702..921,1..1011) \& Note=2.1 kb gap \& Gene=U1\-70K \& } \& Intron={ \& Position=order(M57935:272..406,M57936:1..284,M57937:1..599, <1..>1208) \& Gene=U1\-70K \& } \& Intron={ \& Evidence=experimental \& Position=order(M57935:284..406,M57936:1..284,M57937:1..599, <1..>1208) \& Note=first gap\-0.14 kb, second gap\-0.62 kb \& Gene=U1\-70K \& } \& Intron={ \& Number=8 \& Evidence=experimental \& Position=order(M57935:272..406,M57936:1..284,M57937:1..599, <1..>1181) \& Note=first gap\-0.14 kb, second gap\-0.62 kb \& Gene=U1\-70K \& } \& Exon={ \& Number=10 \& Evidence=experimental \& Position=1012..1099 \& Gene=U1\-70K \& } \& Exon={ \& Number=11 \& Evidence=experimental \& Position=1182..(1989.1998) \& Gene=U1\-70K \& } \& Exon={ \& Evidence=experimental \& Position=1209..(1989.1998) \& Gene=U1\-70K \& } \& Mrna={ \& Product=ribonucleoprotein antigen \& Position=join(M57928:358..668,M57929:319..475,M57930:183..245, ... \& Gene=U1\-70K \& } \& Mrna={ \& Product=ribonucleoprotein antigen \& Citation=[2] \& Evidence=experimental \& Position=join(M57928:358..668,M57929:319..475,M57930:183..245, ... \& Gene=U1\-70K \& } \& Gene={ \& Position=join(M57928:207..719,M57929:1..562,M57930:1..577, ... \& Gene=U1\-70K \& } \& } \& Reference=1 (sites) \& Reference=2 (bases 1 to 2155) \& = .Ve