[Bio] / Sprout / SproutDBD.xml Repository:
ViewVC logotype

Diff of /Sprout/SproutDBD.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25, Sat May 27 02:02:47 2006 UTC revision 1.48, Tue Apr 10 06:13:54 2007 UTC
# Line 7  Line 7 
7              <Fields>              <Fields>
8                  <Field name="genus" type="name-string">                  <Field name="genus" type="name-string">
9                      <Notes>Genus of the relevant organism.</Notes>                      <Notes>Genus of the relevant organism.</Notes>
                     <DataGen pass="1">RandParam('streptococcus', 'staphyloccocus', 'felis', 'homo', 'ficticio', 'strangera', 'escherischia', 'carborunda')</DataGen>  
10                  </Field>                  </Field>
11                  <Field name="species" type="name-string">                  <Field name="species" type="name-string">
12                      <Notes>Species of the relevant organism.</Notes>                      <Notes>Species of the relevant organism.</Notes>
                     <DataGen pass="1">StringGen('PKVKVKVKVKV')</DataGen>  
13                  </Field>                  </Field>
14                  <Field name="unique-characterization" type="medium-string">                  <Field name="unique-characterization" type="medium-string">
15                      <Notes>The unique characterization identifies the particular organism instance from which the                      <Notes>The unique characterization identifies the particular organism instance from which the
16                      genome is taken. It is possible to have in the database more than one genome for a                      genome is taken. It is possible to have in the database more than one genome for a
17                      particular species, and every individual organism has variations in its DNA.</Notes>                      particular species, and every individual organism has variations in its DNA.</Notes>
18                      <DataGen>StringGen('PKVKVK999')</DataGen>                  </Field>
19                    <Field name="version" type="name-string">
20                        <Notes>version string for this genome, generally consisting of the genome ID followed
21                        by a period and a string of digits.</Notes>
22                  </Field>                  </Field>
23                  <Field name="access-code" type="key-string">                  <Field name="access-code" type="key-string">
24                      <Notes>The access code determines which users can look at the data relating to this genome.                      <Notes>The access code determines which users can look at the data relating to this genome.
25                      Each user is associated with a set of access codes. In order to view a genome, one of                      Each user is associated with a set of access codes. In order to view a genome, one of
26                      the user's access codes must match this value.</Notes>                      the user's access codes must match this value.</Notes>
                     <DataGen>RandParam('low','medium','high')</DataGen>  
27                  </Field>                  </Field>
28                  <Field name="complete" type="boolean">                  <Field name="complete" type="boolean">
29                      <Notes>TRUE if the genome is complete, else FALSE</Notes>                      <Notes>TRUE if the genome is complete, else FALSE</Notes>
30                  </Field>                  </Field>
31                    <Field name="dna-size" type="counter">
32                        <Notes>number of base pairs in the genome</Notes>
33                    </Field>
34                  <Field name="taxonomy" type="text">                  <Field name="taxonomy" type="text">
35                      <Notes>The taxonomy string contains the full taxonomy of the organism, while individual elements                      <Notes>The taxonomy string contains the full taxonomy of the organism, while individual elements
36                      separated by semi-colons (and optional white space), starting with the domain and ending with                      separated by semi-colons (and optional white space), starting with the domain and ending with
37                      the disambiguated genus and species (which is the organism's scientific name plus an                      the disambiguated genus and species (which is the organism's scientific name plus an
38                      identifying string).</Notes>                      identifying string).</Notes>
39                      <DataGen pass="2">join('; ', (RandParam('bacteria', 'archaea', 'eukaryote', 'virus', 'environmental'),                  </Field>
40                                                    ListGen('PKVKVKVK', 5), $this->{genus}, $this->{species}))</DataGen>                  <Field name="primary-group" type="name-string">
41                        <Notes>The primary NMPDR group for this organism. There is always exactly one NMPDR group
42                        (either based on the organism name or the default value "Supporting"), whereas there can be
43                        multiple named groups or even none.</Notes>
44                  </Field>                  </Field>
45                  <Field name="group-name" type="name-string" relation="GenomeGroups">                  <Field name="group-name" type="name-string" relation="GenomeGroups">
46                      <Notes>The group identifies a special grouping of organisms that would be displayed on a particular                      <Notes>The group identifies a special grouping of organisms that would be displayed on a particular
# Line 54  Line 60 
60                          <IndexField name="unique-characterization" order="ascending" />                          <IndexField name="unique-characterization" order="ascending" />
61                      </IndexFields>                      </IndexFields>
62                  </Index>                  </Index>
63                  <Index Unique="false">                  <Index>
64                        <Notes>This index allows the applications to find all genomes associated with
65                        a specific primary (NMPDR) group.</Notes>
66                        <IndexFields>
67                            <IndexField name="primary-group" order="ascending" />
68                            <IndexField name="genus" order="ascending" />
69                            <IndexField name="species" order="ascending" />
70                            <IndexField name="unique-characterization" order="ascending" />
71                        </IndexFields>
72                    </Index>
73                    <Index>
74                      <Notes>This index allows the applications to find all genomes for a particular                      <Notes>This index allows the applications to find all genomes for a particular
75                      species.</Notes>                      species.</Notes>
76                      <IndexFields>                      <IndexFields>
# Line 71  Line 87 
87              <Fields>              <Fields>
88                  <Field name="URL" type="string" relation="SourceURL">                  <Field name="URL" type="string" relation="SourceURL">
89                      <Notes>URL the paper cited or of the organization's web site. This field optional.</Notes>                      <Notes>URL the paper cited or of the organization's web site. This field optional.</Notes>
                     <DataGen>"http://www.conservativecat.com/Ferdy/TestTarget.php?Source=" . $this->{id}</DataGen>  
90                  </Field>                  </Field>
91                  <Field name="description" type="text">                  <Field name="description" type="text">
92                      <Notes>Description the source. The description can be a street address or a citation.</Notes>                      <Notes>Description the source. The description can be a street address or a citation.</Notes>
                     <DataGen>$this->{id} . ': ' . StringGen(IntGen(50,200))</DataGen>  
93                  </Field>                  </Field>
94              </Fields>              </Fields>
95          </Entity>          </Entity>
# Line 98  Line 112 
112                  <Field name="sequence" type="text">                  <Field name="sequence" type="text">
113                      <Notes>String consisting of the residues. Each residue is described by a single                      <Notes>String consisting of the residues. Each residue is described by a single
114                      character in the string.</Notes>                      character in the string.</Notes>
                     <DataGen>RandChars("ACGT", IntGen(100,400))</DataGen>  
115                  </Field>                  </Field>
116                  <Field name="quality-vector" type="text">                  <Field name="quality-vector" type="text">
117                      <Notes>String describing the quality data for each base pair. Individual values will                      <Notes>String describing the quality data for each base pair. Individual values will
# Line 107  Line 120 
120                      10^-30. A higher quality number a better chance of a correct match. It is possible                      10^-30. A higher quality number a better chance of a correct match. It is possible
121                      that the quality data is not known for a sequence. If that is the case, the quality                      that the quality data is not known for a sequence. If that is the case, the quality
122                      vector will contain the [b]unknown[/b].</Notes>                      vector will contain the [b]unknown[/b].</Notes>
                     <DataGen>unknown</DataGen>  
123                  </Field>                  </Field>
124              </Fields>              </Fields>
125          </Entity>          </Entity>
# Line 119  Line 131 
131              <Fields>              <Fields>
132                  <Field name="feature-type" type="string">                  <Field name="feature-type" type="string">
133                      <Notes>Code indicating the type of this feature.</Notes>                      <Notes>Code indicating the type of this feature.</Notes>
                     <DataGen>RandParam('peg','rna')</DataGen>  
134                  </Field>                  </Field>
135                  <Field name="alias" type="medium-string" relation="FeatureAlias">                  <Field name="alias" type="medium-string" relation="FeatureAlias">
136                      <Notes>Alternative name for this feature. A feature can have many aliases.</Notes>                      <Notes>Alternative name for this feature. A feature can have many aliases.</Notes>
                     <DataGen testCount="3">StringGen('Pgi|99999', 'Puni|XXXXXX', 'PAAAAAA999')</DataGen>  
137                  </Field>                  </Field>
138                  <Field name="translation" type="text" relation="FeatureTranslation">                  <Field name="translation" type="text" relation="FeatureTranslation">
139                      <Notes>[i](optional)[/i] A translation of this feature's residues into character                      <Notes>[i](optional)[/i] A translation of this feature's residues into character
140                      codes, formed by concatenating the pieces of the feature together. For a                      codes, formed by concatenating the pieces of the feature together. For a
141                      protein encoding group, this is the protein characters. For other types                      protein encoding group, this is the protein characters. For other types
142                      it is the DNA characters.</Notes>                      it is the DNA characters.</Notes>
                     <DataGen testCount="0"></DataGen>  
143                  </Field>                  </Field>
144                  <Field name="upstream-sequence" type="text" relation="FeatureUpstream">                  <Field name="upstream-sequence" type="text" relation="FeatureUpstream">
145                      <Notes>Upstream sequence the feature. This includes residues preceding the feature as well as some of                      <Notes>Upstream sequence the feature. This includes residues preceding the feature as well as some of
146                      the feature's initial residues.</Notes>                      the feature's initial residues.</Notes>
147                      <DataGen testCount="0"></DataGen>                  </Field>
148                    <Field name="assignment" type="text">
149                        <Notes>Default functional assignment for this feature.</Notes>
150                  </Field>                  </Field>
151                  <Field name="active" type="boolean">                  <Field name="active" type="boolean">
152                      <Notes>TRUE if this feature is still considered valid, FALSE if it has been logically deleted.</Notes>                      <Notes>TRUE if this feature is still considered valid, FALSE if it has been logically deleted.</Notes>
153                      <DataGen>1</DataGen>                  </Field>
154                    <Field name="assignment-maker" type="name-string">
155                        <Notes>name of the user who made the functional assignment</Notes>
156                    </Field>
157                    <Field name="assignment-quality" type="char">
158                        <Notes>quality of the functional assignment, usually a space, but may be W (indicating weak) or X
159                        (indicating experimental)</Notes>
160                    </Field>
161                    <Field name="keywords" type="text" searchable="1">
162                        <Notes>This is a list of search keywords for the feature. It includes the
163                        functional assignment, subsystem roles, and special properties.</Notes>
164                  </Field>                  </Field>
165                  <Field name="link" type="text" relation="FeatureLink">                  <Field name="link" type="text" relation="FeatureLink">
166                      <Notes>Web hyperlink for this feature. A feature have no hyperlinks or it can have many. The                      <Notes>Web hyperlink for this feature. A feature have no hyperlinks or it can have many. The
167                      links are to other websites that have useful about the gene that the feature represents, and                      links are to other websites that have useful about the gene that the feature represents, and
168                      are coded as raw HTML, using [b]&lt;a href="[i]link[/i]"&gt;[i]text[/i]&lt;/a&gt;[/b] notation.</Notes>                      are coded as raw HTML, using [b]&lt;a href="[i]link[/i]"&gt;[i]text[/i]&lt;/a&gt;[/b] notation.</Notes>
169                      <DataGen testCount="3">'http://www.conservativecat.com/Ferdy/TestTarget.php?Source=' . $this->{id} .                  </Field>
170                      "&amp;Number=" . IntGen(1,99)</DataGen>                  <Field name="conservation" type="float" relation="FeatureConservation">
171                        <Notes>A number between 0 and 1 that indicates the degree to which this feature's DNA is
172                        conserved in related genomes. A value of 1 indicates perfect conservation. A value less
173                        than 1 is a reflect of the degree to which gap characters interfere in the alignment
174                        between the feature and its close relatives.</Notes>
175                    </Field>
176                    <Field name="essential" type="text" relation="FeatureEssential" special="property_search">
177                        <Notes>A value indicating the essentiality of the feature, coded as HTML. In most
178                        cases, this will be a word describing whether the essentiality is confirmed (essential)
179                        or potential (potential-essential), hyperlinked to the document from which the
180                        essentiality was curated. If a feature is not essential, this field will have no
181                        values; otherwise, it may have multiple values.</Notes>
182                    </Field>
183                    <Field name="virulent" type="text" relation="FeatureVirulent" special="property_search">
184                        <Notes>A value indicating the virulence of the feature, coded as HTML. In most
185                        cases, this will be a phrase or SA number hyperlinked to the document from which
186                        the virulence information was curated. If the feature is not virulent, this field
187                        will have no values; otherwise, it may have multiple values.</Notes>
188                    </Field>
189                    <Field name="iedb" type="text" relation="FeatureIEDB" special="property_search">
190                        <Notes>A value indicating whether or not the feature can be found in the
191                        Immune Epitope Database. If the feature has not been matched to that database,
192                        this field will have no values. Otherwise, it will have an epitope name and/or
193                        sequence, hyperlinked to the database.</Notes>
194                  </Field>                  </Field>
195              </Fields>              </Fields>
196              <Indexes>              <Indexes>
# Line 159  Line 203 
203                  </Index>                  </Index>
204              </Indexes>              </Indexes>
205          </Entity>          </Entity>
206            <Entity name="SynonymGroup" keyType="id-string">
207                <Notes>A [i]synonym group[/i] represents a group of features. Substantially identical features
208                are mapped to the same synonym group, and this information is used to expand similarities.</Notes>
209            </Entity>
210          <Entity name="Role" keyType="string">          <Entity name="Role" keyType="string">
211              <Notes>A [i]role[/i] describes a biological function that may be fulfilled by a feature.              <Notes>A [i]role[/i] describes a biological function that may be fulfilled by a feature.
212              One of the main goals of the database is to record the roles of the various features.</Notes>              One of the main goals of the database is to record the roles of the various features.</Notes>
213              <Fields>              <Fields>
214                  <Field name="EC" type="string" relation="RoleEC">                  <Field name="EC" type="string" relation="RoleEC">
215                      <Notes>EC code for this role.</Notes>                      <Notes>EC code for this role.</Notes>
                     <DataGen testCount="1">StringGen(IntGen(20,40)) . "(" . $this->{id} . ")"</DataGen>  
216                  </Field>                  </Field>
217                  <Field name="abbr" type="name-string">                  <Field name="abbr" type="name-string">
218                      <Notes>Abbreviated name for the role, generally non-unique, but useful                      <Notes>Abbreviated name for the role, generally non-unique, but useful
# Line 194  Line 241 
241                      <Notes>Text of the annotation.</Notes>                      <Notes>Text of the annotation.</Notes>
242                  </Field>                  </Field>
243              </Fields>              </Fields>
244                <Indexes>
245                    <Index>
246                        <Notes>This index allows the user to find recent annotations.</Notes>
247                        <IndexFields>
248                            <IndexField name="time" order="descending" />
249                        </IndexFields>
250                    </Index>
251                </Indexes>
252          </Entity>          </Entity>
253          <Entity name="Reaction" keyType="key-string">          <Entity name="Reaction" keyType="key-string">
254              <Notes>A [i]reaction[/i] is a chemical process catalyzed by a protein. The reaction ID              <Notes>A [i]reaction[/i] is a chemical process catalyzed by a protein. The reaction ID
# Line 264  Line 319 
319                  <Field name="notes" type="text">                  <Field name="notes" type="text">
320                      <Notes>Descriptive notes about the subsystem.</Notes>                      <Notes>Descriptive notes about the subsystem.</Notes>
321                  </Field>                  </Field>
322                    <Field name="classification" type="string" relation="SubsystemClass">
323                        <Notes>Classification string, colon-delimited. This string organizes the
324                        subsystems into a hierarchy.</Notes>
325                    </Field>
326              </Fields>              </Fields>
327          </Entity>          </Entity>
328          <Entity name="RoleSubset" keyType="string">          <Entity name="RoleSubset" keyType="string">
# Line 293  Line 352 
352                      <Notes>Access code possessed by this                      <Notes>Access code possessed by this
353                      user. A user can have many access codes; a genome is accessible to the user if its                      user. A user can have many access codes; a genome is accessible to the user if its
354                      access code matches any one of the user's access codes.</Notes>                      access code matches any one of the user's access codes.</Notes>
                     <DataGen testCount="2">RandParam('low', 'medium', 'high')</DataGen>  
355                  </Field>                  </Field>
356              </Fields>              </Fields>
357          </Entity>          </Entity>
# Line 358  Line 416 
416                      </Field>                      </Field>
417                  </Fields>                  </Fields>
418          </Entity>          </Entity>
419          <Entity name="Coupling" keyType="hash-string">          <Entity name="Coupling" keyType="id-string">
420              <Notes>A coupling is a relationship between two features. The features are              <Notes>A coupling is a relationship between two features. The features are
421              physically close on the contig, and there is evidence that they generally              physically close on the contig, and there is evidence that they generally
422              belong together. The key of this entity is formed by combining the coupled              belong together. The key of this entity is formed by combining the coupled
# Line 374  Line 432 
432                  </Field>                  </Field>
433              </Fields>              </Fields>
434          </Entity>          </Entity>
435          <Entity name="PCH" keyType="hash-string">          <Entity name="PCH" keyType="counter">
436              <Notes>A PCH (physically close homolog) connects a clustering (which is a              <Notes>A PCH (physically close homolog) connects a clustering (which is a
437              pair of physically close features on a contig) to a second pair of physically              pair of physically close features on a contig) to a second pair of physically
438              close features that are similar to the first. Essentially, the PCH is a              close features that are similar to the first. Essentially, the PCH is a
# Line 382  Line 440 
440              are similar to the second clustering's features. The simplest model for              are similar to the second clustering's features. The simplest model for
441              this would be to simply relate clusterings to each other; however, not all              this would be to simply relate clusterings to each other; however, not all
442              physically close pairs qualify as clusterings, so we relate a clustering to              physically close pairs qualify as clusterings, so we relate a clustering to
443              a pair of features. The key is the clustering key followed by the IDs              a pair of features. The key a unique ID number.</Notes>
             of the features in the second pair.</Notes>  
444              <Fields>              <Fields>
445                  <Field name="used" type="boolean">                  <Field name="used" type="boolean">
446                      <Notes>TRUE if this PCH is used in scoring the attached clustering,                      <Notes>TRUE if this PCH is used in scoring the attached clustering,
# Line 394  Line 451 
451                  </Field>                  </Field>
452              </Fields>              </Fields>
453          </Entity>          </Entity>
454            <Entity name="Family" keyType="id-string">
455                <Notes>A family is a group of homologous PEGs believed to have the same function. Protein
456                families provide a mechanism for verifying the accuracy of functional assignments
457                and are also used in determining phylogenetic trees.</Notes>
458                <Fields>
459                    <Field name="function" type="text">
460                        <Notes>The functional assignment expected for all PEGs in this family.</Notes>
461                    </Field>
462                    <Field name="size" type="int">
463                        <Notes>The number of proteins in this family. This may be larger than the
464                        number of PEGs included in the family, since the family may also contain external
465                        IDs.</Notes>
466                    </Field>
467                </Fields>
468            </Entity>
469      </Entities>      </Entities>
470      <Relationships>      <Relationships>
471            <Relationship name="IsFamilyForFeature" from="Family" to="Feature" arity="MM">
472                <Notes>This relationship connects a protein family to all of its PEGs and connects
473                each PEG to all of its protein families.</Notes>
474            </Relationship>
475          <Relationship name="ParticipatesInCoupling" from="Feature" to="Coupling" arity="MM">          <Relationship name="ParticipatesInCoupling" from="Feature" to="Coupling" arity="MM">
476              <Notes>This relationship connects a feature to all the functional couplings              <Notes>This relationship connects a feature to all the functional couplings
477              in which it participates. A functional coupling is a recognition of the fact              in which it participates. A functional coupling is a recognition of the fact
# Line 416  Line 492 
492                  </IndexFields>                  </IndexFields>
493              </ToIndex>              </ToIndex>
494          </Relationship>          </Relationship>
495            <Relationship name="IsSynonymGroupFor" from="SynonymGroup" to="Feature" arity="1M">
496                <Notes>This relation connects a synonym group to the features that make it
497                up.</Notes>
498            </Relationship>
499          <Relationship name="HasFeature" from="Genome" to="Feature" arity="1M">          <Relationship name="HasFeature" from="Genome" to="Feature" arity="1M">
500              <Notes>This relationship connects a genome to all of its features. This              <Notes>This relationship connects a genome to all of its features. This
501              relationship is redundant in a sense, because the genome ID is part              relationship is redundant in a sense, because the genome ID is part
# Line 427  Line 507 
507                      <Notes>Feature type (eg. peg, rna)</Notes>                      <Notes>Feature type (eg. peg, rna)</Notes>
508                  </Field>                  </Field>
509              </Fields>              </Fields>
510              <ToIndex>              <FromIndex>
511                  <Notes>This index enables the application to view the features of a                  <Notes>This index enables the application to view the features of a
512                  Genome sorted by type.</Notes>                  Genome sorted by type.</Notes>
513                  <IndexFields>                  <IndexFields>
514                      <IndexField name="type" order="ascending" />                      <IndexField name="type" order="ascending" />
515                  </IndexFields>                  </IndexFields>
516              </ToIndex>              </FromIndex>
517          </Relationship>          </Relationship>
518          <Relationship name="IsEvidencedBy" from="Coupling" to="PCH" arity="1M">          <Relationship name="IsEvidencedBy" from="Coupling" to="PCH" arity="1M">
519              <Notes>This relationship connects a functional coupling to the physically              <Notes>This relationship connects a functional coupling to the physically
# Line 645  Line 725 
725                      [b]-[/b] if it is backward.</Notes>                      [b]-[/b] if it is backward.</Notes>
726                  </Field>                  </Field>
727              </Fields>              </Fields>
728              <FromIndex Unique="false">              <FromIndex>
729                  <Notes>This index allows the application to find all the segments of a feature in                  <Notes>This index allows the application to find all the segments of a feature in
730                  the proper order.</Notes>                  the proper order.</Notes>
731                  <IndexFields>                  <IndexFields>
# Line 660  Line 740 
740                  </IndexFields>                  </IndexFields>
741              </ToIndex>              </ToIndex>
742          </Relationship>          </Relationship>
         <Relationship name="IsBidirectionalBestHitOf" from="Feature" to="Feature" arity="MM">  
             <Notes>This relationship is one of two that relate features to each other. It  
             connects features that are very similar but on separate genomes. A  
             bidirectional best hit relationship exists between two features [b]A[/b]  
             and [b]B[/b] if [b]A[/b] is the best match for [b]B[/b] on [b]A[/b]'s genome  
             and [b]B[/b] is the best match for [b]A[/b] on [b]B[/b]'s genome. </Notes>  
             <Fields>  
                 <Field name="genome" type="name-string">  
                     <Notes>ID of the genome containing the target (to) feature.</Notes>  
                 </Field>  
                 <Field name="sc" type="float">  
                     <Notes>score for this relationship</Notes>  
                 </Field>  
             </Fields>  
             <FromIndex>  
                 <Notes>This index allows the application to find a feature's best hit for  
                 a specific target genome.</Notes>  
                 <IndexFields>  
                     <IndexField name="genome" order="ascending" />  
                 </IndexFields>  
             </FromIndex>  
         </Relationship>  
743          <Relationship name="HasProperty" from="Feature" to="Property" arity="MM">          <Relationship name="HasProperty" from="Feature" to="Property" arity="MM">
744              <Notes>This relationship connects a feature to its known property values.              <Notes>This relationship connects a feature to its known property values.
745              The relationship contains text data that indicates the paper or organization              The relationship contains text data that indicates the paper or organization
# Line 747  Line 805 
805              chemical reactions. A single reaction can be triggered by many roles,              chemical reactions. A single reaction can be triggered by many roles,
806              and a role can trigger many reactions.</Notes>              and a role can trigger many reactions.</Notes>
807          </Relationship>          </Relationship>
808            <Relationship name="HasRoleInSubsystem" from="Feature" to="Subsystem" arity="MM">
809                <Notes>This relationship connects a feature to the subsystems in which it
810                participates. This is technically redundant information, but it is used
811                so often that it deserves its own table.</Notes>
812                <Fields>
813                    <Field name="genome" type="name-string">
814                        <Notes>ID of the genome containing the feature</Notes>
815                    </Field>
816                    <Field name="type" type="key-string">
817                        <Notes>Feature type (eg. peg, rna)</Notes>
818                    </Field>
819                </Fields>
820                <ToIndex>
821                    <Notes>This index enables the application to view the features of a
822                    subsystem sorted by genome and feature type.</Notes>
823                    <IndexFields>
824                        <IndexField name="genome" order="ascending" />
825                        <IndexField name="type" order="ascending" />
826                    </IndexFields>
827                </ToIndex>
828            </Relationship>
829      </Relationships>      </Relationships>
830  </Database>  </Database>

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.48

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3