ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/bioseg/trunk/README.bioseg
(Generate patch)
# Line 57 | Line 57
57   If you have a full installation of PostgreSQL, including the pg_config
58   program, bioseg can be unpacked anywhere and built like:
59  
60 +    make USE_PGXS=t clean
61      make USE_PGXS=t
62      make install USE_PGXS=t
63      (or: sudo make install USE_PGXS=t)
# Line 73 | Line 74
74   integers greater than 0 joined by the range operator ('..' or '...').
75   The first integer must be less than or equal to the second.
76  
77 <  11..22        An interval from 10 to 20 inclusive - length 11 (= 22-11+1)
77 >  11..22        An interval from 11 to 22 inclusive - length 12 (= 22-11+1)
78  
79    1...2         The same as 1..2
80  
# Line 156 | Line 157
157          you want to use ORDER BY with this type
158  
159  
160 < NOTE: The performance of an R-tree index can largely depend on the
161 < order of input values. It may be very helpful to sort the input table
161 < on the BIOSEG column (see the script sort-segments.pl for an example)
160 > NOTE: The performance of an R-tree index can largely depend on the order of
161 > input values.  It may be helpful to sort the input table on the BIOSEG column.
162  
163  
164   INDEXES
# Line 170 | Line 170
170    CREATE TABLE tt (range bioseg, id integer);
171    CREATE INDEX tt_range_idx ON tt USING gist (range);
172  
173 + Or for an existing table a function index can be used.  For example on a
174 + feature table with fmin and fmax:
175 +
176 +  CREATE INDEX bioseg_index ON feature USING gist (bioseg_create(fmin, fmax));
177 +
178 + This query will then find features that overlap 2000..3000, using the index:
179 +
180 +  SELECT * FROM feature
181 +           WHERE '2000..3000'::bioseg && bioseg_create(fmin, fmax);
182 +
183  
184   INTERBASE COORDINATES
185   =====================
# Line 179 | Line 189
189   based" or "half-open intervals") run the build with INTERBASE_COORDS defined
190   in make, ie.:
191  
192 +    make clean
193      make INTERBASE_COORDS=t
194      make install INTERBASE_COORDS=t
195 +    (or: sudo make install INTERBASE_COORDS=t)
196  
197   This will compile and install the implementation for the "bioseg0" type.
198   The "0" in the name is a mnemonic for "0-based".
# Line 191 | Line 203
203  
204   The bioseg and bioseg0 types can be mixed in the same database.
205  
206 < Note
207 < ----
206 > Notes
207 > -----
208   In the interbase system '1..10'::bioseg0 and '10..20'::bioseg0 don't overlap,
209   whereas in the 1-based system '1..10'::bioseg and '10..20'::bioseg have a one
210   base overlap.  Also note that the length of '1..10'::bioseg0 is 9, whereas the
211   length of '1..10'::bioseg is 10.
212  
213 + Unlike the bioseg type the start and/or end of a bioseg0 can be negative, with
214 + the expected reults.
215 +  eg.   bioseg0_size('-10..10'::bioseg0) == 20
216 +
217   See:
218   http://www.gmod.org/wiki/index.php/Introduction_to_Chado#Interbase_Coordinates
219   for a longer discussion of the differences between the coordinate systems.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines