Upload presentation
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
This commit is contained in:
parent
184886c144
commit
7e8a46ded0
14 changed files with 1447 additions and 0 deletions
1
presentation/.gitignore
vendored
Normal file
1
presentation/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
index.html
|
302
presentation/american-chemical-society.csl
Normal file
302
presentation/american-chemical-society.csl
Normal file
|
@ -0,0 +1,302 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" page-range-format="expanded" default-locale="en-US">
|
||||
<info>
|
||||
<title>American Chemical Society</title>
|
||||
<title-short>ACS</title-short>
|
||||
<id>http://www.zotero.org/styles/american-chemical-society</id>
|
||||
<link href="http://www.zotero.org/styles/american-chemical-society" rel="self"/>
|
||||
<link href="https://pubs.acs.org/doi/full/10.1021/acsguide.40303" rel="documentation"/>
|
||||
<link href="https://pubs.acs.org/doi/book/10.1021/acsguide" rel="documentation"/>
|
||||
<author>
|
||||
<name>Julian Onions</name>
|
||||
<email>julian.onions@gmail.com</email>
|
||||
</author>
|
||||
<contributor>
|
||||
<name>Ivan Bushmarinov</name>
|
||||
<email>ib@ineos.ac.ru</email>
|
||||
</contributor>
|
||||
<contributor>
|
||||
<name>Sebastian Karcher</name>
|
||||
</contributor>
|
||||
<contributor>
|
||||
<name>Patrick O'Brien</name>
|
||||
</contributor>
|
||||
<category citation-format="numeric"/>
|
||||
<category field="chemistry"/>
|
||||
<summary>The American Chemical Society style</summary>
|
||||
<updated>2022-09-19T18:32:56+00:00</updated>
|
||||
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
||||
</info>
|
||||
<locale xml:lang="en">
|
||||
<terms>
|
||||
<term name="editortranslator" form="short">
|
||||
<single>ed. and translator</single>
|
||||
<multiple>eds. and translators</multiple>
|
||||
</term>
|
||||
<term name="translator" form="short">
|
||||
<single>translator</single>
|
||||
<multiple>translators</multiple>
|
||||
</term>
|
||||
<term name="collection-editor" form="short">
|
||||
<single>series ed.</single>
|
||||
<multiple>series eds.</multiple>
|
||||
</term>
|
||||
</terms>
|
||||
</locale>
|
||||
<macro name="editor">
|
||||
<group delimiter="; ">
|
||||
<names variable="editor translator" delimiter="; ">
|
||||
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
|
||||
<label form="short" prefix=", " text-case="title"/>
|
||||
</names>
|
||||
<names variable="collection-editor">
|
||||
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
|
||||
<label form="short" prefix=", " text-case="title"/>
|
||||
</names>
|
||||
</group>
|
||||
</macro>
|
||||
<macro name="author">
|
||||
<names variable="author" suffix=".">
|
||||
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter="; " delimiter-precedes-last="always"/>
|
||||
<label form="short" prefix=", " text-case="capitalize-first"/>
|
||||
</names>
|
||||
</macro>
|
||||
<macro name="publisher">
|
||||
<choose>
|
||||
<if type="thesis" match="any">
|
||||
<group delimiter=", ">
|
||||
<text variable="publisher"/>
|
||||
<text variable="publisher-place"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<group delimiter=": ">
|
||||
<text variable="publisher"/>
|
||||
<text variable="publisher-place"/>
|
||||
</group>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="title">
|
||||
<choose>
|
||||
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
|
||||
<text variable="title" text-case="title" font-style="italic"/>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="title" text-case="title"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="volume">
|
||||
<group delimiter=" ">
|
||||
<text term="volume" form="short" text-case="capitalize-first"/>
|
||||
<text variable="volume"/>
|
||||
</group>
|
||||
</macro>
|
||||
<macro name="series">
|
||||
<text variable="collection-title"/>
|
||||
</macro>
|
||||
<macro name="pages">
|
||||
<label variable="page" form="short" suffix=" " strip-periods="true"/>
|
||||
<text variable="page"/>
|
||||
</macro>
|
||||
<macro name="book-container">
|
||||
<group delimiter=". ">
|
||||
<text macro="title"/>
|
||||
<choose>
|
||||
<if type="entry-dictionary entry-encyclopedia" match="none">
|
||||
<group delimiter=" ">
|
||||
<text term="in" text-case="capitalize-first"/>
|
||||
<text variable="container-title" font-style="italic"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="container-title" font-style="italic"/>
|
||||
</else>
|
||||
</choose>
|
||||
</group>
|
||||
</macro>
|
||||
<macro name="issued">
|
||||
<date variable="issued" delimiter=" ">
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</macro>
|
||||
<macro name="full-issued">
|
||||
<date variable="issued" delimiter=" ">
|
||||
<date-part name="month" form="long" suffix=" "/>
|
||||
<date-part name="day" suffix=", "/>
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</macro>
|
||||
<macro name="edition">
|
||||
<choose>
|
||||
<if is-numeric="edition">
|
||||
<group delimiter=" ">
|
||||
<number variable="edition" form="ordinal"/>
|
||||
<text term="edition" form="short"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="edition" suffix="."/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="access">
|
||||
<choose>
|
||||
<if variable="DOI" match="any">
|
||||
<text variable="DOI" prefix="https://doi.org/"/>
|
||||
</if>
|
||||
<else-if type="article-journal book chapter entry-encyclopedia entry-dictionary paper-conference" match="none">
|
||||
<choose>
|
||||
<if variable="URL">
|
||||
<group delimiter=" ">
|
||||
<text variable="URL"/>
|
||||
<group delimiter=" " prefix="(" suffix=")">
|
||||
<text term="accessed"/>
|
||||
<date variable="accessed">
|
||||
<date-part name="year"/>
|
||||
<date-part name="month" prefix="-" form="numeric-leading-zeros"/>
|
||||
<date-part name="day" prefix="-" form="numeric-leading-zeros"/>
|
||||
</date>
|
||||
</group>
|
||||
</group>
|
||||
</if>
|
||||
</choose>
|
||||
</else-if>
|
||||
</choose>
|
||||
</macro>
|
||||
<citation collapse="citation-number">
|
||||
<sort>
|
||||
<key variable="citation-number"/>
|
||||
</sort>
|
||||
<layout delimiter="," vertical-align="sup">
|
||||
<text variable="citation-number"/>
|
||||
</layout>
|
||||
</citation>
|
||||
<bibliography second-field-align="flush" entry-spacing="0">
|
||||
<layout suffix=".">
|
||||
<text variable="citation-number" prefix="(" suffix=")"/>
|
||||
<text macro="author" suffix=" "/>
|
||||
<choose>
|
||||
<if type="article-journal review" match="any">
|
||||
<group delimiter=" ">
|
||||
<text macro="title" suffix="."/>
|
||||
<text variable="container-title" font-style="italic" form="short"/>
|
||||
<group delimiter=", ">
|
||||
<text macro="issued" font-weight="bold"/>
|
||||
<choose>
|
||||
<if variable="volume">
|
||||
<group delimiter=" ">
|
||||
<text variable="volume" font-style="italic"/>
|
||||
<text variable="issue" prefix="(" suffix=")"/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<group delimiter=" ">
|
||||
<text term="issue" form="short" text-case="capitalize-first"/>
|
||||
<text variable="issue"/>
|
||||
</group>
|
||||
</else>
|
||||
</choose>
|
||||
<text variable="page"/>
|
||||
</group>
|
||||
</group>
|
||||
</if>
|
||||
<else-if type="article-magazine article-newspaper article" match="any">
|
||||
<group delimiter=" ">
|
||||
<text macro="title" suffix="."/>
|
||||
<text variable="container-title" font-style="italic" suffix="."/>
|
||||
<text macro="edition"/>
|
||||
<text macro="publisher"/>
|
||||
<group delimiter=", ">
|
||||
<text macro="full-issued"/>
|
||||
<text macro="pages"/>
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="thesis">
|
||||
<group delimiter=", ">
|
||||
<group delimiter=". ">
|
||||
<text macro="title"/>
|
||||
<text variable="genre"/>
|
||||
</group>
|
||||
<text macro="publisher"/>
|
||||
<text macro="issued"/>
|
||||
<text macro="volume"/>
|
||||
<text macro="pages"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
|
||||
<group delimiter="; ">
|
||||
<group delimiter=", ">
|
||||
<text macro="title"/>
|
||||
<text macro="edition"/>
|
||||
</group>
|
||||
<text macro="editor" prefix=" "/>
|
||||
<text macro="series"/>
|
||||
<choose>
|
||||
<if type="report">
|
||||
<group delimiter=" ">
|
||||
<text variable="genre"/>
|
||||
<text variable="number"/>
|
||||
</group>
|
||||
</if>
|
||||
</choose>
|
||||
<group delimiter=", ">
|
||||
<text macro="publisher"/>
|
||||
<text macro="issued"/>
|
||||
</group>
|
||||
<group delimiter=", ">
|
||||
<text macro="volume"/>
|
||||
<text macro="pages"/>
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="patent">
|
||||
<group delimiter=", ">
|
||||
<group delimiter=". ">
|
||||
<text macro="title"/>
|
||||
<text variable="number"/>
|
||||
</group>
|
||||
<date variable="issued" form="text"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="chapter paper-conference entry-dictionary entry-encyclopedia" match="any">
|
||||
<group delimiter="; ">
|
||||
<text macro="book-container"/>
|
||||
<text macro="editor"/>
|
||||
<text macro="series"/>
|
||||
<group delimiter=", ">
|
||||
<text macro="publisher"/>
|
||||
<text macro="issued"/>
|
||||
</group>
|
||||
<group delimiter=", ">
|
||||
<text macro="volume"/>
|
||||
<text macro="pages"/>
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="webpage post post-weblog" match="any">
|
||||
<group delimiter=". ">
|
||||
<text variable="title" font-style="italic"/>
|
||||
<text variable="container-title"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else>
|
||||
<group delimiter=", ">
|
||||
<group delimiter=". ">
|
||||
<text macro="title"/>
|
||||
<text variable="container-title" font-style="italic"/>
|
||||
</group>
|
||||
<group delimiter=", ">
|
||||
<text macro="issued"/>
|
||||
<text variable="volume" font-style="italic"/>
|
||||
<text variable="page"/>
|
||||
</group>
|
||||
</group>
|
||||
</else>
|
||||
</choose>
|
||||
<text macro="access" prefix=". "/>
|
||||
</layout>
|
||||
</bibliography>
|
||||
</style>
|
31
presentation/diagrams/all_indices.gv
Normal file
31
presentation/diagrams/all_indices.gv
Normal file
|
@ -0,0 +1,31 @@
|
|||
digraph GFidx {
|
||||
compound=true;
|
||||
GFF3 [label="GFF3 file", shape=box];
|
||||
|
||||
|
||||
subgraph cluster_gfidx {
|
||||
label="General Feature index (GFidx) file";
|
||||
labelloc=b;
|
||||
"Range index"; "Relation tree";
|
||||
|
||||
"Relation tree" [label="Relation tree"];
|
||||
"Range index" -> "Relation tree" [color=blue];
|
||||
|
||||
subgraph cluster_attr_tries {
|
||||
node [fillcolor="lightblue", style=filled];
|
||||
label="Attribute indices";
|
||||
"ID index"; "Gene name index"; "...";
|
||||
}
|
||||
|
||||
|
||||
"Range index" -> "ID index" [color=blue];
|
||||
"Range index" -> "Gene name index" [color=blue];
|
||||
"Range index" -> "..." [color=blue];
|
||||
}
|
||||
|
||||
GFF3 -> "ID index";
|
||||
GFF3 -> "Gene name index";
|
||||
GFF3 -> "...";
|
||||
GFF3 -> "Range index";
|
||||
GFF3 -> "Relation tree";
|
||||
}
|
113
presentation/diagrams/all_indices.svg
Normal file
113
presentation/diagrams/all_indices.svg
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.0.0 (0)
|
||||
-->
|
||||
<!-- Title: GFidx Pages: 1 -->
|
||||
<svg width="513pt" height="261pt"
|
||||
viewBox="0.00 0.00 513.00 261.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 257)">
|
||||
<title>GFidx</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-257 509,-257 509,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_gfidx</title>
|
||||
<polygon fill="none" stroke="black" points="8,-8 8,-189 497,-189 497,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="252.5" y="-15.2" font-family="Times,serif" font-size="14.00">General Feature index (GFidx) file</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_attr_tries</title>
|
||||
<polygon fill="none" stroke="black" points="143,-40.5 143,-117 489,-117 489,-40.5 143,-40.5"/>
|
||||
<text text-anchor="middle" x="316" y="-47.7" font-family="Times,serif" font-size="14.00">Attribute indices</text>
|
||||
</g>
|
||||
<!-- GFF3 -->
|
||||
<g id="node1" class="node">
|
||||
<title>GFF3</title>
|
||||
<polygon fill="none" stroke="black" points="340.62,-253 271.38,-253 271.38,-217 340.62,-217 340.62,-253"/>
|
||||
<text text-anchor="middle" x="306" y="-229.95" font-family="Times,serif" font-size="14.00">GFF3 file</text>
|
||||
</g>
|
||||
<!-- Range index -->
|
||||
<g id="node2" class="node">
|
||||
<title>Range index</title>
|
||||
<ellipse fill="none" stroke="black" cx="183" cy="-163" rx="57.49" ry="18"/>
|
||||
<text text-anchor="middle" x="183" y="-157.95" font-family="Times,serif" font-size="14.00">Range index</text>
|
||||
</g>
|
||||
<!-- GFF3->Range index -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>GFF3->Range index</title>
|
||||
<path fill="none" stroke="black" d="M275.28,-216.52C258.51,-206.97 237.62,-195.08 219.96,-185.03"/>
|
||||
<polygon fill="black" stroke="black" points="221.72,-182.01 211.3,-180.11 218.26,-188.1 221.72,-182.01"/>
|
||||
</g>
|
||||
<!-- Relation tree -->
|
||||
<g id="node3" class="node">
|
||||
<title>Relation tree</title>
|
||||
<ellipse fill="none" stroke="black" cx="75" cy="-91" rx="58.52" ry="18"/>
|
||||
<text text-anchor="middle" x="75" y="-85.95" font-family="Times,serif" font-size="14.00">Relation tree</text>
|
||||
</g>
|
||||
<!-- GFF3->Relation tree -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>GFF3->Relation tree</title>
|
||||
<path fill="none" stroke="black" d="M299.59,-216.8C291.13,-196.51 274.29,-163.26 249,-145 208.09,-115.47 187.03,-132.43 139,-117 132.44,-114.89 125.58,-112.46 118.9,-109.97"/>
|
||||
<polygon fill="black" stroke="black" points="120.6,-106.87 110.01,-106.56 118.1,-113.41 120.6,-106.87"/>
|
||||
</g>
|
||||
<!-- ID index -->
|
||||
<g id="node4" class="node">
|
||||
<title>ID index</title>
|
||||
<ellipse fill="lightblue" stroke="black" cx="195" cy="-91" rx="43.67" ry="18"/>
|
||||
<text text-anchor="middle" x="195" y="-85.95" font-family="Times,serif" font-size="14.00">ID index</text>
|
||||
</g>
|
||||
<!-- GFF3->ID index -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>GFF3->ID index</title>
|
||||
<path fill="none" stroke="black" d="M307.57,-216.61C308.4,-197.35 306.95,-166.23 292,-145 288.04,-139.38 258.14,-123.45 232.57,-110.51"/>
|
||||
<polygon fill="black" stroke="black" points="234.18,-107.41 223.67,-106.05 231.04,-113.66 234.18,-107.41"/>
|
||||
</g>
|
||||
<!-- Gene name index -->
|
||||
<g id="node5" class="node">
|
||||
<title>Gene name index</title>
|
||||
<ellipse fill="lightblue" stroke="black" cx="333" cy="-91" rx="76.43" ry="18"/>
|
||||
<text text-anchor="middle" x="333" y="-85.95" font-family="Times,serif" font-size="14.00">Gene name index</text>
|
||||
</g>
|
||||
<!-- GFF3->Gene name index -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>GFF3->Gene name index</title>
|
||||
<path fill="none" stroke="black" d="M312.14,-216.66C314.89,-208.38 317.95,-198.27 320,-189 325.01,-166.3 328.38,-140.16 330.43,-120.74"/>
|
||||
<polygon fill="black" stroke="black" points="333.91,-121.13 331.42,-110.83 326.94,-120.44 333.91,-121.13"/>
|
||||
</g>
|
||||
<!-- ... -->
|
||||
<g id="node6" class="node">
|
||||
<title>...</title>
|
||||
<ellipse fill="lightblue" stroke="black" cx="454" cy="-91" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="454" y="-85.95" font-family="Times,serif" font-size="14.00">...</text>
|
||||
</g>
|
||||
<!-- GFF3->... -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>GFF3->...</title>
|
||||
<path fill="none" stroke="black" d="M324.15,-216.59C351.12,-190.7 401.78,-142.1 431.21,-113.86"/>
|
||||
<polygon fill="black" stroke="black" points="433.38,-116.63 438.18,-107.18 428.54,-111.58 433.38,-116.63"/>
|
||||
</g>
|
||||
<!-- Range index->Relation tree -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Range index->Relation tree</title>
|
||||
<path fill="none" stroke="blue" d="M158.76,-146.29C144.03,-136.74 125.01,-124.41 108.81,-113.91"/>
|
||||
<polygon fill="blue" stroke="blue" points="110.72,-110.98 100.43,-108.48 106.91,-116.86 110.72,-110.98"/>
|
||||
</g>
|
||||
<!-- Range index->ID index -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Range index->ID index</title>
|
||||
<path fill="none" stroke="blue" d="M185.97,-144.7C187.23,-137.32 188.74,-128.52 190.16,-120.25"/>
|
||||
<polygon fill="blue" stroke="blue" points="193.57,-121.04 191.81,-110.6 186.67,-119.86 193.57,-121.04"/>
|
||||
</g>
|
||||
<!-- Range index->Gene name index -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Range index->Gene name index</title>
|
||||
<path fill="none" stroke="blue" d="M214.08,-147.5C235.83,-137.34 265.2,-123.64 289.3,-112.39"/>
|
||||
<polygon fill="blue" stroke="blue" points="290.66,-115.62 298.24,-108.22 287.7,-109.28 290.66,-115.62"/>
|
||||
</g>
|
||||
<!-- Range index->... -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Range index->...</title>
|
||||
<path fill="none" stroke="blue" d="M238.54,-157.92C287.39,-152.83 359.61,-141.56 418,-117 421.44,-115.55 424.88,-113.75 428.19,-111.77"/>
|
||||
<polygon fill="blue" stroke="blue" points="429.98,-114.79 436.38,-106.35 426.11,-108.95 429.98,-114.79"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
64
presentation/diagrams/attr_trie.gv
Normal file
64
presentation/diagrams/attr_trie.gv
Normal file
|
@ -0,0 +1,64 @@
|
|||
graph attr_trie {
|
||||
rankdir=LR;
|
||||
subgraph cluster_id_trie {
|
||||
label="ID index";
|
||||
|
||||
id_root [label="Start", shape=box];
|
||||
|
||||
id_0_e [label="E"];
|
||||
id_1_n [label="N"];
|
||||
id_2_s [label="S"];
|
||||
id_3_t [label="T"];
|
||||
id_3_g [label="G"];
|
||||
|
||||
id_4_collapse [label="..."];
|
||||
id_4_collapse2 [label="..."];
|
||||
|
||||
id_root -- id_0_e -- id_1_n -- id_2_s -- id_3_t;
|
||||
id_2_s -- id_3_g;
|
||||
|
||||
id_3_t -- id_4_collapse;
|
||||
id_3_g -- id_4_collapse2;
|
||||
|
||||
id_5_2 [label="2"];
|
||||
id_6_8 [label="8"];
|
||||
|
||||
id_5_2_2 [label="2"];
|
||||
id_6_5 [label="5"];
|
||||
|
||||
id_4_collapse -- id_5_2 -- id_6_8;
|
||||
id_4_collapse2 -- id_5_2_2 -- id_6_5;
|
||||
|
||||
"Feature #1" [label="Feature #1", color=lightblue, style=filled];
|
||||
"Feature #3" [label="Feature #3", color=lightblue, style=filled];
|
||||
|
||||
id_6_8 -- "Feature #3";
|
||||
id_6_5 -- "Feature #1";
|
||||
}
|
||||
|
||||
subgraph cluster_gene_trie {
|
||||
label="Gene name index";
|
||||
|
||||
gene_root [label="Start", shape=box];
|
||||
|
||||
gene_0_D [label="D"];
|
||||
gene_1_D [label="D"];
|
||||
gene_2_X [label="X"];
|
||||
gene_3_1 [label="1"];
|
||||
gene_4_1 [label="1"];
|
||||
gene_5_L [label="L"];
|
||||
gene_6_2 [label="2"];
|
||||
|
||||
gene_0_O [label="O"];
|
||||
gene_1_R [label="R"];
|
||||
gene_2_4 [label="4"];
|
||||
gene_3_F [label="F"];
|
||||
gene_4_5 [label="5"];
|
||||
|
||||
"Feature #91_gene" [label="Feature #91", color=lightblue, style=filled];
|
||||
"Feature #1_gene" [label="Feature #1", color=lightblue, style=filled];
|
||||
|
||||
gene_root -- gene_0_D -- gene_1_D -- gene_2_X -- gene_3_1 -- gene_4_1 -- gene_5_L -- gene_6_2 -- "Feature #1_gene";
|
||||
gene_root -- gene_0_O -- gene_1_R -- gene_2_4 -- gene_3_F -- gene_4_5 -- "Feature #91_gene";
|
||||
}
|
||||
}
|
332
presentation/diagrams/attr_trie.svg
Normal file
332
presentation/diagrams/attr_trie.svg
Normal file
|
@ -0,0 +1,332 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.0.0 (0)
|
||||
-->
|
||||
<!-- Title: attr_trie Pages: 1 -->
|
||||
<svg width="917pt" height="294pt"
|
||||
viewBox="0.00 0.00 916.52 294.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 290)">
|
||||
<title>attr_trie</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-290 912.52,-290 912.52,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_id_trie</title>
|
||||
<polygon fill="none" stroke="black" points="8,-8 8,-139 900.52,-139 900.52,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="454.26" y="-121.7" font-family="Times,serif" font-size="14.00">ID index</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_gene_trie</title>
|
||||
<polygon fill="none" stroke="black" points="8,-147 8,-278 900.52,-278 900.52,-147 8,-147"/>
|
||||
<text text-anchor="middle" x="454.26" y="-260.7" font-family="Times,serif" font-size="14.00">Gene name index</text>
|
||||
</g>
|
||||
<!-- id_root -->
|
||||
<g id="node1" class="node">
|
||||
<title>id_root</title>
|
||||
<polygon fill="none" stroke="black" points="70,-79 16,-79 16,-43 70,-43 70,-79"/>
|
||||
<text text-anchor="middle" x="43" y="-55.95" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- id_0_e -->
|
||||
<g id="node2" class="node">
|
||||
<title>id_0_e</title>
|
||||
<ellipse fill="none" stroke="black" cx="133" cy="-61" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="133" y="-55.95" font-family="Times,serif" font-size="14.00">E</text>
|
||||
</g>
|
||||
<!-- id_root--id_0_e -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>id_root--id_0_e</title>
|
||||
<path fill="none" stroke="black" d="M70.4,-61C81.54,-61 94.48,-61 105.62,-61"/>
|
||||
</g>
|
||||
<!-- id_1_n -->
|
||||
<g id="node3" class="node">
|
||||
<title>id_1_n</title>
|
||||
<ellipse fill="none" stroke="black" cx="223" cy="-61" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="223" y="-55.95" font-family="Times,serif" font-size="14.00">N</text>
|
||||
</g>
|
||||
<!-- id_0_e--id_1_n -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>id_0_e--id_1_n</title>
|
||||
<path fill="none" stroke="black" d="M160.4,-61C171.54,-61 184.48,-61 195.62,-61"/>
|
||||
</g>
|
||||
<!-- id_2_s -->
|
||||
<g id="node4" class="node">
|
||||
<title>id_2_s</title>
|
||||
<ellipse fill="none" stroke="black" cx="313" cy="-61" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="313" y="-55.95" font-family="Times,serif" font-size="14.00">S</text>
|
||||
</g>
|
||||
<!-- id_1_n--id_2_s -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>id_1_n--id_2_s</title>
|
||||
<path fill="none" stroke="black" d="M250.4,-61C261.54,-61 274.48,-61 285.62,-61"/>
|
||||
</g>
|
||||
<!-- id_3_t -->
|
||||
<g id="node5" class="node">
|
||||
<title>id_3_t</title>
|
||||
<ellipse fill="none" stroke="black" cx="403" cy="-34" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="403" y="-28.95" font-family="Times,serif" font-size="14.00">T</text>
|
||||
</g>
|
||||
<!-- id_2_s--id_3_t -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>id_2_s--id_3_t</title>
|
||||
<path fill="none" stroke="black" d="M338.05,-53.62C350.46,-49.81 365.57,-45.18 377.98,-41.37"/>
|
||||
</g>
|
||||
<!-- id_3_g -->
|
||||
<g id="node6" class="node">
|
||||
<title>id_3_g</title>
|
||||
<ellipse fill="none" stroke="black" cx="403" cy="-88" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="403" y="-82.95" font-family="Times,serif" font-size="14.00">G</text>
|
||||
</g>
|
||||
<!-- id_2_s--id_3_g -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>id_2_s--id_3_g</title>
|
||||
<path fill="none" stroke="black" d="M338.05,-68.38C350.46,-72.19 365.57,-76.82 377.98,-80.63"/>
|
||||
</g>
|
||||
<!-- id_4_collapse -->
|
||||
<g id="node7" class="node">
|
||||
<title>id_4_collapse</title>
|
||||
<ellipse fill="none" stroke="black" cx="493" cy="-34" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="493" y="-28.95" font-family="Times,serif" font-size="14.00">...</text>
|
||||
</g>
|
||||
<!-- id_3_t--id_4_collapse -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>id_3_t--id_4_collapse</title>
|
||||
<path fill="none" stroke="black" d="M430.4,-34C441.54,-34 454.48,-34 465.62,-34"/>
|
||||
</g>
|
||||
<!-- id_4_collapse2 -->
|
||||
<g id="node8" class="node">
|
||||
<title>id_4_collapse2</title>
|
||||
<ellipse fill="none" stroke="black" cx="493" cy="-88" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="493" y="-82.95" font-family="Times,serif" font-size="14.00">...</text>
|
||||
</g>
|
||||
<!-- id_3_g--id_4_collapse2 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>id_3_g--id_4_collapse2</title>
|
||||
<path fill="none" stroke="black" d="M430.4,-88C441.54,-88 454.48,-88 465.62,-88"/>
|
||||
</g>
|
||||
<!-- id_5_2 -->
|
||||
<g id="node9" class="node">
|
||||
<title>id_5_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="610.93" cy="-34" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="610.93" y="-28.95" font-family="Times,serif" font-size="14.00">2</text>
|
||||
</g>
|
||||
<!-- id_4_collapse--id_5_2 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>id_4_collapse--id_5_2</title>
|
||||
<path fill="none" stroke="black" d="M520.31,-34C539.28,-34 564.78,-34 583.73,-34"/>
|
||||
</g>
|
||||
<!-- id_5_2_2 -->
|
||||
<g id="node11" class="node">
|
||||
<title>id_5_2_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="610.93" cy="-88" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="610.93" y="-82.95" font-family="Times,serif" font-size="14.00">2</text>
|
||||
</g>
|
||||
<!-- id_4_collapse2--id_5_2_2 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>id_4_collapse2--id_5_2_2</title>
|
||||
<path fill="none" stroke="black" d="M520.31,-88C539.28,-88 564.78,-88 583.73,-88"/>
|
||||
</g>
|
||||
<!-- id_6_8 -->
|
||||
<g id="node10" class="node">
|
||||
<title>id_6_8</title>
|
||||
<ellipse fill="none" stroke="black" cx="728.87" cy="-34" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="728.87" y="-28.95" font-family="Times,serif" font-size="14.00">8</text>
|
||||
</g>
|
||||
<!-- id_5_2--id_6_8 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>id_5_2--id_6_8</title>
|
||||
<path fill="none" stroke="black" d="M638.24,-34C657.21,-34 682.72,-34 701.67,-34"/>
|
||||
</g>
|
||||
<!-- Feature #3 -->
|
||||
<g id="node14" class="node">
|
||||
<title>Feature #3</title>
|
||||
<ellipse fill="lightblue" stroke="lightblue" cx="842.2" cy="-34" rx="50.33" ry="18"/>
|
||||
<text text-anchor="middle" x="842.2" y="-28.95" font-family="Times,serif" font-size="14.00">Feature #3</text>
|
||||
</g>
|
||||
<!-- id_6_8--Feature #3 -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>id_6_8--Feature #3</title>
|
||||
<path fill="none" stroke="black" d="M756.25,-34C766.8,-34 779.3,-34 791.43,-34"/>
|
||||
</g>
|
||||
<!-- id_6_5 -->
|
||||
<g id="node12" class="node">
|
||||
<title>id_6_5</title>
|
||||
<ellipse fill="none" stroke="black" cx="728.87" cy="-88" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="728.87" y="-82.95" font-family="Times,serif" font-size="14.00">5</text>
|
||||
</g>
|
||||
<!-- id_5_2_2--id_6_5 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>id_5_2_2--id_6_5</title>
|
||||
<path fill="none" stroke="black" d="M638.24,-88C657.21,-88 682.72,-88 701.67,-88"/>
|
||||
</g>
|
||||
<!-- Feature #1 -->
|
||||
<g id="node13" class="node">
|
||||
<title>Feature #1</title>
|
||||
<ellipse fill="lightblue" stroke="lightblue" cx="842.2" cy="-88" rx="50.33" ry="18"/>
|
||||
<text text-anchor="middle" x="842.2" y="-82.95" font-family="Times,serif" font-size="14.00">Feature #1</text>
|
||||
</g>
|
||||
<!-- id_6_5--Feature #1 -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>id_6_5--Feature #1</title>
|
||||
<path fill="none" stroke="black" d="M756.25,-88C766.8,-88 779.3,-88 791.43,-88"/>
|
||||
</g>
|
||||
<!-- gene_root -->
|
||||
<g id="node15" class="node">
|
||||
<title>gene_root</title>
|
||||
<polygon fill="none" stroke="black" points="70,-218 16,-218 16,-182 70,-182 70,-218"/>
|
||||
<text text-anchor="middle" x="43" y="-194.95" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- gene_0_D -->
|
||||
<g id="node16" class="node">
|
||||
<title>gene_0_D</title>
|
||||
<ellipse fill="none" stroke="black" cx="133" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="133" y="-167.95" font-family="Times,serif" font-size="14.00">D</text>
|
||||
</g>
|
||||
<!-- gene_root--gene_0_D -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>gene_root--gene_0_D</title>
|
||||
<path fill="none" stroke="black" d="M70.4,-191.9C82.35,-188.23 96.37,-183.93 108.02,-180.36"/>
|
||||
</g>
|
||||
<!-- gene_0_O -->
|
||||
<g id="node23" class="node">
|
||||
<title>gene_0_O</title>
|
||||
<ellipse fill="none" stroke="black" cx="133" cy="-227" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="133" y="-221.95" font-family="Times,serif" font-size="14.00">O</text>
|
||||
</g>
|
||||
<!-- gene_root--gene_0_O -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>gene_root--gene_0_O</title>
|
||||
<path fill="none" stroke="black" d="M70.4,-208.1C82.35,-211.77 96.37,-216.07 108.02,-219.64"/>
|
||||
</g>
|
||||
<!-- gene_1_D -->
|
||||
<g id="node17" class="node">
|
||||
<title>gene_1_D</title>
|
||||
<ellipse fill="none" stroke="black" cx="223" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="223" y="-167.95" font-family="Times,serif" font-size="14.00">D</text>
|
||||
</g>
|
||||
<!-- gene_0_D--gene_1_D -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>gene_0_D--gene_1_D</title>
|
||||
<path fill="none" stroke="black" d="M160.4,-173C171.54,-173 184.48,-173 195.62,-173"/>
|
||||
</g>
|
||||
<!-- gene_2_X -->
|
||||
<g id="node18" class="node">
|
||||
<title>gene_2_X</title>
|
||||
<ellipse fill="none" stroke="black" cx="313" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="313" y="-167.95" font-family="Times,serif" font-size="14.00">X</text>
|
||||
</g>
|
||||
<!-- gene_1_D--gene_2_X -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>gene_1_D--gene_2_X</title>
|
||||
<path fill="none" stroke="black" d="M250.4,-173C261.54,-173 274.48,-173 285.62,-173"/>
|
||||
</g>
|
||||
<!-- gene_3_1 -->
|
||||
<g id="node19" class="node">
|
||||
<title>gene_3_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="403" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="403" y="-167.95" font-family="Times,serif" font-size="14.00">1</text>
|
||||
</g>
|
||||
<!-- gene_2_X--gene_3_1 -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>gene_2_X--gene_3_1</title>
|
||||
<path fill="none" stroke="black" d="M340.4,-173C351.54,-173 364.48,-173 375.62,-173"/>
|
||||
</g>
|
||||
<!-- gene_4_1 -->
|
||||
<g id="node20" class="node">
|
||||
<title>gene_4_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="493" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="493" y="-167.95" font-family="Times,serif" font-size="14.00">1</text>
|
||||
</g>
|
||||
<!-- gene_3_1--gene_4_1 -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>gene_3_1--gene_4_1</title>
|
||||
<path fill="none" stroke="black" d="M430.4,-173C441.54,-173 454.48,-173 465.62,-173"/>
|
||||
</g>
|
||||
<!-- gene_5_L -->
|
||||
<g id="node21" class="node">
|
||||
<title>gene_5_L</title>
|
||||
<ellipse fill="none" stroke="black" cx="610.93" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="610.93" y="-167.95" font-family="Times,serif" font-size="14.00">L</text>
|
||||
</g>
|
||||
<!-- gene_4_1--gene_5_L -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>gene_4_1--gene_5_L</title>
|
||||
<path fill="none" stroke="black" d="M520.31,-173C539.28,-173 564.78,-173 583.73,-173"/>
|
||||
</g>
|
||||
<!-- gene_6_2 -->
|
||||
<g id="node22" class="node">
|
||||
<title>gene_6_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="728.87" cy="-173" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="728.87" y="-167.95" font-family="Times,serif" font-size="14.00">2</text>
|
||||
</g>
|
||||
<!-- gene_5_L--gene_6_2 -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>gene_5_L--gene_6_2</title>
|
||||
<path fill="none" stroke="black" d="M638.24,-173C657.21,-173 682.72,-173 701.67,-173"/>
|
||||
</g>
|
||||
<!-- Feature #1_gene -->
|
||||
<g id="node29" class="node">
|
||||
<title>Feature #1_gene</title>
|
||||
<ellipse fill="lightblue" stroke="lightblue" cx="842.2" cy="-173" rx="50.33" ry="18"/>
|
||||
<text text-anchor="middle" x="842.2" y="-167.95" font-family="Times,serif" font-size="14.00">Feature #1</text>
|
||||
</g>
|
||||
<!-- gene_6_2--Feature #1_gene -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>gene_6_2--Feature #1_gene</title>
|
||||
<path fill="none" stroke="black" d="M756.25,-173C766.8,-173 779.3,-173 791.43,-173"/>
|
||||
</g>
|
||||
<!-- gene_1_R -->
|
||||
<g id="node24" class="node">
|
||||
<title>gene_1_R</title>
|
||||
<ellipse fill="none" stroke="black" cx="223" cy="-227" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="223" y="-221.95" font-family="Times,serif" font-size="14.00">R</text>
|
||||
</g>
|
||||
<!-- gene_0_O--gene_1_R -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>gene_0_O--gene_1_R</title>
|
||||
<path fill="none" stroke="black" d="M160.4,-227C171.54,-227 184.48,-227 195.62,-227"/>
|
||||
</g>
|
||||
<!-- gene_2_4 -->
|
||||
<g id="node25" class="node">
|
||||
<title>gene_2_4</title>
|
||||
<ellipse fill="none" stroke="black" cx="313" cy="-227" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="313" y="-221.95" font-family="Times,serif" font-size="14.00">4</text>
|
||||
</g>
|
||||
<!-- gene_1_R--gene_2_4 -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>gene_1_R--gene_2_4</title>
|
||||
<path fill="none" stroke="black" d="M250.4,-227C261.54,-227 274.48,-227 285.62,-227"/>
|
||||
</g>
|
||||
<!-- gene_3_F -->
|
||||
<g id="node26" class="node">
|
||||
<title>gene_3_F</title>
|
||||
<ellipse fill="none" stroke="black" cx="403" cy="-227" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="403" y="-221.95" font-family="Times,serif" font-size="14.00">F</text>
|
||||
</g>
|
||||
<!-- gene_2_4--gene_3_F -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>gene_2_4--gene_3_F</title>
|
||||
<path fill="none" stroke="black" d="M340.4,-227C351.54,-227 364.48,-227 375.62,-227"/>
|
||||
</g>
|
||||
<!-- gene_4_5 -->
|
||||
<g id="node27" class="node">
|
||||
<title>gene_4_5</title>
|
||||
<ellipse fill="none" stroke="black" cx="493" cy="-227" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="493" y="-221.95" font-family="Times,serif" font-size="14.00">5</text>
|
||||
</g>
|
||||
<!-- gene_3_F--gene_4_5 -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>gene_3_F--gene_4_5</title>
|
||||
<path fill="none" stroke="black" d="M430.4,-227C441.54,-227 454.48,-227 465.62,-227"/>
|
||||
</g>
|
||||
<!-- Feature #91_gene -->
|
||||
<g id="node28" class="node">
|
||||
<title>Feature #91_gene</title>
|
||||
<ellipse fill="lightblue" stroke="lightblue" cx="610.93" cy="-227" rx="54.93" ry="18"/>
|
||||
<text text-anchor="middle" x="610.93" y="-221.95" font-family="Times,serif" font-size="14.00">Feature #91</text>
|
||||
</g>
|
||||
<!-- gene_4_5--Feature #91_gene -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>gene_4_5--Feature #91_gene</title>
|
||||
<path fill="none" stroke="black" d="M520.31,-227C530.86,-227 543.44,-227 555.78,-227"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
46
presentation/diagrams/range_index.gv
Normal file
46
presentation/diagrams/range_index.gv
Normal file
|
@ -0,0 +1,46 @@
|
|||
graph range_index {
|
||||
rankdir=LR;
|
||||
root [label="Root", shape=box];
|
||||
|
||||
node_0_chr1 [label="chr1"];
|
||||
node_0_chr2 [label="chr2"];
|
||||
|
||||
node_1_chr1_1_10000 [label="1:1-10000", xlabel="Offset: 0"];
|
||||
node_1_chr1_10001_20000 [label="1:10001-20000", xlabel="Offset: 0xA000"];
|
||||
|
||||
node_1_chr2_1_10000 [label="2:1-10000", xlabel="Offset: 0x14000"];
|
||||
node_1_chr2_10001_20000 [label="2:10001-20000", xlabel="Offset: 0x1E000"];
|
||||
|
||||
node_2_chr1_1_5000 [label="1:1-5000", xlabel="Offset: B000"];
|
||||
node_2_chr1_5001_10000 [label="1:5001-10000", xlabel="Offset: 0x10000"];
|
||||
|
||||
node_2_chr1_10001_15000 [label="1:10001-15000", xlabel="Offset: 0x1F400"];
|
||||
node_2_chr1_15001_20000 [label="1:15001-20000", xlabel="Offset: 0x2E800"];
|
||||
|
||||
node_2_chr2_1_5000 [label="2:1-5000", xlabel="Offset: 0x2D000"];
|
||||
node_2_chr2_5001_10000 [label="2:5001-10000", xlabel="Offset: 0x3C000"];
|
||||
|
||||
node_2_chr2_10001_15000 [label="2:10001-15000", xlabel="Offset: 0x4B400"];
|
||||
node_2_chr2_15001_20000 [label="2:15001-20000", xlabel="Offset: 0x5A800"];
|
||||
|
||||
root -- node_0_chr1;
|
||||
root -- node_0_chr2;
|
||||
|
||||
node_0_chr1 -- node_1_chr1_1_10000;
|
||||
node_0_chr1 -- node_1_chr1_10001_20000;
|
||||
|
||||
node_0_chr2 -- node_1_chr2_1_10000;
|
||||
node_0_chr2 -- node_1_chr2_10001_20000;
|
||||
|
||||
node_1_chr1_1_10000 -- node_2_chr1_1_5000;
|
||||
node_1_chr1_1_10000 -- node_2_chr1_5001_10000;
|
||||
|
||||
node_1_chr1_10001_20000 -- node_2_chr1_10001_15000;
|
||||
node_1_chr1_10001_20000 -- node_2_chr1_15001_20000;
|
||||
|
||||
node_1_chr2_1_10000 -- node_2_chr2_1_5000;
|
||||
node_1_chr2_1_10000 -- node_2_chr2_5001_10000;
|
||||
|
||||
node_1_chr2_10001_20000 -- node_2_chr2_10001_15000;
|
||||
node_1_chr2_10001_20000 -- node_2_chr2_15001_20000;
|
||||
}
|
185
presentation/diagrams/range_index.svg
Normal file
185
presentation/diagrams/range_index.svg
Normal file
|
@ -0,0 +1,185 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.0.0 (0)
|
||||
-->
|
||||
<!-- Title: range_index Pages: 1 -->
|
||||
<svg width="493pt" height="439pt"
|
||||
viewBox="0.00 0.00 493.46 438.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 434.5)">
|
||||
<title>range_index</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-434.5 489.46,-434.5 489.46,4 -4,4"/>
|
||||
<!-- root -->
|
||||
<g id="node1" class="node">
|
||||
<title>root</title>
|
||||
<polygon fill="none" stroke="black" points="54,-268.5 0,-268.5 0,-232.5 54,-232.5 54,-268.5"/>
|
||||
<text text-anchor="middle" x="27" y="-245.45" font-family="Times,serif" font-size="14.00">Root</text>
|
||||
</g>
|
||||
<!-- node_0_chr1 -->
|
||||
<g id="node2" class="node">
|
||||
<title>node_0_chr1</title>
|
||||
<ellipse fill="none" stroke="black" cx="117.3" cy="-277.5" rx="27.3" ry="18"/>
|
||||
<text text-anchor="middle" x="117.3" y="-272.45" font-family="Times,serif" font-size="14.00">chr1</text>
|
||||
</g>
|
||||
<!-- root--node_0_chr1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>root--node_0_chr1</title>
|
||||
<path fill="none" stroke="black" d="M54.49,-258.6C66.38,-262.24 80.31,-266.5 91.93,-270.05"/>
|
||||
</g>
|
||||
<!-- node_0_chr2 -->
|
||||
<g id="node3" class="node">
|
||||
<title>node_0_chr2</title>
|
||||
<ellipse fill="none" stroke="black" cx="117.3" cy="-169.5" rx="27.3" ry="18"/>
|
||||
<text text-anchor="middle" x="117.3" y="-164.45" font-family="Times,serif" font-size="14.00">chr2</text>
|
||||
</g>
|
||||
<!-- root--node_0_chr2 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>root--node_0_chr2</title>
|
||||
<path fill="none" stroke="black" d="M48.04,-232.12C63.91,-217.56 85.79,-197.49 100.45,-184.03"/>
|
||||
</g>
|
||||
<!-- node_1_chr1_1_10000 -->
|
||||
<g id="node4" class="node">
|
||||
<title>node_1_chr1_1_10000</title>
|
||||
<ellipse fill="none" stroke="black" cx="247.81" cy="-358.5" rx="48.79" ry="18"/>
|
||||
<text text-anchor="middle" x="247.81" y="-353.45" font-family="Times,serif" font-size="14.00">1:1-10000</text>
|
||||
<text text-anchor="middle" x="175.02" y="-327.2" font-family="Times,serif" font-size="14.00">Offset: 0</text>
|
||||
</g>
|
||||
<!-- node_0_chr1--node_1_chr1_1_10000 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>node_0_chr1--node_1_chr1_1_10000</title>
|
||||
<path fill="none" stroke="black" d="M137.81,-289.8C160.42,-304.05 197.71,-327.55 222.26,-343.03"/>
|
||||
</g>
|
||||
<!-- node_1_chr1_10001_20000 -->
|
||||
<g id="node5" class="node">
|
||||
<title>node_1_chr1_10001_20000</title>
|
||||
<ellipse fill="none" stroke="black" cx="247.81" cy="-277.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="247.81" y="-272.45" font-family="Times,serif" font-size="14.00">1:10001-20000</text>
|
||||
<text text-anchor="middle" x="138.22" y="-246.2" font-family="Times,serif" font-size="14.00">Offset: 0xA000</text>
|
||||
</g>
|
||||
<!-- node_0_chr1--node_1_chr1_10001_20000 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>node_0_chr1--node_1_chr1_10001_20000</title>
|
||||
<path fill="none" stroke="black" d="M144.92,-277.5C155.29,-277.5 167.67,-277.5 180.18,-277.5"/>
|
||||
</g>
|
||||
<!-- node_1_chr2_1_10000 -->
|
||||
<g id="node6" class="node">
|
||||
<title>node_1_chr2_1_10000</title>
|
||||
<ellipse fill="none" stroke="black" cx="247.81" cy="-169.5" rx="48.79" ry="18"/>
|
||||
<text text-anchor="middle" x="247.81" y="-164.45" font-family="Times,serif" font-size="14.00">2:1-10000</text>
|
||||
<text text-anchor="middle" x="154.77" y="-138.2" font-family="Times,serif" font-size="14.00">Offset: 0x14000</text>
|
||||
</g>
|
||||
<!-- node_0_chr2--node_1_chr2_1_10000 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>node_0_chr2--node_1_chr2_1_10000</title>
|
||||
<path fill="none" stroke="black" d="M144.92,-169.5C160.44,-169.5 180.47,-169.5 198.66,-169.5"/>
|
||||
</g>
|
||||
<!-- node_1_chr2_10001_20000 -->
|
||||
<g id="node7" class="node">
|
||||
<title>node_1_chr2_10001_20000</title>
|
||||
<ellipse fill="none" stroke="black" cx="247.81" cy="-88.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="247.81" y="-83.45" font-family="Times,serif" font-size="14.00">2:10001-20000</text>
|
||||
<text text-anchor="middle" x="135.59" y="-57.2" font-family="Times,serif" font-size="14.00">Offset: 0x1E000</text>
|
||||
</g>
|
||||
<!-- node_0_chr2--node_1_chr2_10001_20000 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>node_0_chr2--node_1_chr2_10001_20000</title>
|
||||
<path fill="none" stroke="black" d="M137.81,-157.2C159.86,-143.3 195.86,-120.61 220.41,-105.14"/>
|
||||
</g>
|
||||
<!-- node_2_chr1_1_5000 -->
|
||||
<g id="node8" class="node">
|
||||
<title>node_2_chr1_1_5000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-412.5" rx="44.19" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-407.45" font-family="Times,serif" font-size="14.00">1:1-5000</text>
|
||||
<text text-anchor="middle" x="338.81" y="-381.2" font-family="Times,serif" font-size="14.00">Offset: B000</text>
|
||||
</g>
|
||||
<!-- node_1_chr1_1_10000--node_2_chr1_1_5000 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>node_1_chr1_1_10000--node_2_chr1_1_5000</title>
|
||||
<path fill="none" stroke="black" d="M285.36,-370.22C314.29,-379.49 354.41,-392.35 382.78,-401.45"/>
|
||||
</g>
|
||||
<!-- node_2_chr1_5001_10000 -->
|
||||
<g id="node9" class="node">
|
||||
<title>node_2_chr1_5001_10000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-358.5" rx="62.61" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-353.45" font-family="Times,serif" font-size="14.00">1:5001-10000</text>
|
||||
<text text-anchor="middle" x="311.38" y="-327.2" font-family="Times,serif" font-size="14.00">Offset: 0x10000</text>
|
||||
</g>
|
||||
<!-- node_1_chr1_1_10000--node_2_chr1_5001_10000 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>node_1_chr1_1_10000--node_2_chr1_5001_10000</title>
|
||||
<path fill="none" stroke="black" d="M297.08,-358.5C315.26,-358.5 336.19,-358.5 355.43,-358.5"/>
|
||||
</g>
|
||||
<!-- node_2_chr1_10001_15000 -->
|
||||
<g id="node10" class="node">
|
||||
<title>node_2_chr1_10001_15000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-304.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-299.45" font-family="Times,serif" font-size="14.00">1:10001-15000</text>
|
||||
<text text-anchor="middle" x="440.84" y="-273.2" font-family="Times,serif" font-size="14.00">Offset: 0x1F400</text>
|
||||
</g>
|
||||
<!-- node_1_chr1_10001_20000--node_2_chr1_10001_15000 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>node_1_chr1_10001_20000--node_2_chr1_10001_15000</title>
|
||||
<path fill="none" stroke="black" d="M306.3,-286.72C323.55,-289.48 342.47,-292.51 359.72,-295.28"/>
|
||||
</g>
|
||||
<!-- node_2_chr1_15001_20000 -->
|
||||
<g id="node11" class="node">
|
||||
<title>node_2_chr1_15001_20000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-250.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-245.45" font-family="Times,serif" font-size="14.00">1:15001-20000</text>
|
||||
<text text-anchor="middle" x="306.03" y="-219.2" font-family="Times,serif" font-size="14.00">Offset: 0x2E800</text>
|
||||
</g>
|
||||
<!-- node_1_chr1_10001_20000--node_2_chr1_15001_20000 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>node_1_chr1_10001_20000--node_2_chr1_15001_20000</title>
|
||||
<path fill="none" stroke="black" d="M306.3,-268.28C323.55,-265.52 342.47,-262.49 359.72,-259.72"/>
|
||||
</g>
|
||||
<!-- node_2_chr2_1_5000 -->
|
||||
<g id="node12" class="node">
|
||||
<title>node_2_chr2_1_5000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-196.5" rx="44.19" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-191.45" font-family="Times,serif" font-size="14.00">2:1-5000</text>
|
||||
<text text-anchor="middle" x="416.68" y="-165.2" font-family="Times,serif" font-size="14.00">Offset: 0x2D000</text>
|
||||
</g>
|
||||
<!-- node_1_chr2_1_10000--node_2_chr2_1_5000 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>node_1_chr2_1_10000--node_2_chr2_1_5000</title>
|
||||
<path fill="none" stroke="black" d="M293.06,-176.59C318.89,-180.73 351.25,-185.92 376.46,-189.96"/>
|
||||
</g>
|
||||
<!-- node_2_chr2_5001_10000 -->
|
||||
<g id="node13" class="node">
|
||||
<title>node_2_chr2_5001_10000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-142.5" rx="62.61" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-137.45" font-family="Times,serif" font-size="14.00">2:5001-10000</text>
|
||||
<text text-anchor="middle" x="310.26" y="-111.2" font-family="Times,serif" font-size="14.00">Offset: 0x3C000</text>
|
||||
</g>
|
||||
<!-- node_1_chr2_1_10000--node_2_chr2_5001_10000 -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>node_1_chr2_1_10000--node_2_chr2_5001_10000</title>
|
||||
<path fill="none" stroke="black" d="M293.06,-162.41C314.41,-158.98 340.22,-154.85 362.76,-151.23"/>
|
||||
</g>
|
||||
<!-- node_2_chr2_10001_15000 -->
|
||||
<g id="node14" class="node">
|
||||
<title>node_2_chr2_10001_15000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-88.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-83.45" font-family="Times,serif" font-size="14.00">2:10001-15000</text>
|
||||
<text text-anchor="middle" x="305.65" y="-57.2" font-family="Times,serif" font-size="14.00">Offset: 0x4B400</text>
|
||||
</g>
|
||||
<!-- node_1_chr2_10001_20000--node_2_chr2_10001_15000 -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>node_1_chr2_10001_20000--node_2_chr2_10001_15000</title>
|
||||
<path fill="none" stroke="black" d="M315.38,-88.5C326.97,-88.5 339.02,-88.5 350.61,-88.5"/>
|
||||
</g>
|
||||
<!-- node_2_chr2_15001_20000 -->
|
||||
<g id="node15" class="node">
|
||||
<title>node_2_chr2_15001_20000</title>
|
||||
<ellipse fill="none" stroke="black" cx="418.25" cy="-34.5" rx="67.22" ry="18"/>
|
||||
<text text-anchor="middle" x="418.25" y="-29.45" font-family="Times,serif" font-size="14.00">2:15001-20000</text>
|
||||
<text text-anchor="middle" x="305.28" y="-3.2" font-family="Times,serif" font-size="14.00">Offset: 0x5A800</text>
|
||||
</g>
|
||||
<!-- node_1_chr2_10001_20000--node_2_chr2_15001_20000 -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>node_1_chr2_10001_20000--node_2_chr2_15001_20000</title>
|
||||
<path fill="none" stroke="black" d="M292.19,-74.59C317.33,-66.53 348.89,-56.41 374.02,-48.36"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.6 KiB |
27
presentation/diagrams/relation_tree.gv
Normal file
27
presentation/diagrams/relation_tree.gv
Normal file
|
@ -0,0 +1,27 @@
|
|||
graph relation_tree {
|
||||
root [label="Root", shape=box];
|
||||
|
||||
gene_1 [label="Gene #1", xlabel="#101"];
|
||||
gene_2 [label="Gene #2", xlabel="#102"];
|
||||
|
||||
gene_1_transcript_1 [label="Transcript #1", xlabel="#103"];
|
||||
gene_1_transcript_2 [label="Transcript #2", xlabel="#104"];
|
||||
|
||||
gene_2_transcript_1 [label="Transcript #1", xlabel="#105"];
|
||||
gene_2_transcript_2 [label="Transcript #2", xlabel="#106"];
|
||||
gene_2_transcript_3 [label="Transcript #3", xlabel="#107"];
|
||||
|
||||
gene_1_transcript_1_exon_1 [label="Exon #1", xlabel="#108"];
|
||||
|
||||
root -- gene_1;
|
||||
root -- gene_2;
|
||||
|
||||
gene_1 -- gene_1_transcript_1;
|
||||
gene_1 -- gene_1_transcript_2;
|
||||
|
||||
gene_2 -- gene_2_transcript_1;
|
||||
gene_2 -- gene_2_transcript_2;
|
||||
gene_2 -- gene_2_transcript_3;
|
||||
|
||||
gene_1_transcript_1 -- gene_1_transcript_1_exon_1;
|
||||
}
|
115
presentation/diagrams/relation_tree.svg
Normal file
115
presentation/diagrams/relation_tree.svg
Normal file
|
@ -0,0 +1,115 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 12.0.0 (0)
|
||||
-->
|
||||
<!-- Title: relation_tree Pages: 1 -->
|
||||
<svg width="712pt" height="260pt"
|
||||
viewBox="0.00 0.00 712.13 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
|
||||
<title>relation_tree</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-256 708.13,-256 708.13,4 -4,4"/>
|
||||
<!-- root -->
|
||||
<g id="node1" class="node">
|
||||
<title>root</title>
|
||||
<polygon fill="none" stroke="black" points="322.56,-252 268.56,-252 268.56,-216 322.56,-216 322.56,-252"/>
|
||||
<text text-anchor="middle" x="295.56" y="-228.95" font-family="Times,serif" font-size="14.00">Root</text>
|
||||
</g>
|
||||
<!-- gene_1 -->
|
||||
<g id="node2" class="node">
|
||||
<title>gene_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="226.56" cy="-162" rx="42.14" ry="18"/>
|
||||
<text text-anchor="middle" x="226.56" y="-156.95" font-family="Times,serif" font-size="14.00">Gene #1</text>
|
||||
<text text-anchor="middle" x="170.93" y="-183.2" font-family="Times,serif" font-size="14.00">#101</text>
|
||||
</g>
|
||||
<!-- root--gene_1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>root--gene_1</title>
|
||||
<path fill="none" stroke="black" d="M278.51,-215.7C267.49,-204.52 253.26,-190.08 242.48,-179.14"/>
|
||||
</g>
|
||||
<!-- gene_2 -->
|
||||
<g id="node3" class="node">
|
||||
<title>gene_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="434.56" cy="-162" rx="42.14" ry="18"/>
|
||||
<text text-anchor="middle" x="434.56" y="-156.95" font-family="Times,serif" font-size="14.00">Gene #2</text>
|
||||
<text text-anchor="middle" x="378.93" y="-183.2" font-family="Times,serif" font-size="14.00">#102</text>
|
||||
</g>
|
||||
<!-- root--gene_2 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>root--gene_2</title>
|
||||
<path fill="none" stroke="black" d="M323.03,-219.17C347.71,-206.74 383.73,-188.6 408.1,-176.33"/>
|
||||
</g>
|
||||
<!-- gene_1_transcript_1 -->
|
||||
<g id="node4" class="node">
|
||||
<title>gene_1_transcript_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="87.56" cy="-90" rx="60.56" ry="18"/>
|
||||
<text text-anchor="middle" x="87.56" y="-84.95" font-family="Times,serif" font-size="14.00">Transcript #1</text>
|
||||
<text text-anchor="middle" x="13.5" y="-111.2" font-family="Times,serif" font-size="14.00">#103</text>
|
||||
</g>
|
||||
<!-- gene_1--gene_1_transcript_1 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>gene_1--gene_1_transcript_1</title>
|
||||
<path fill="none" stroke="black" d="M200.09,-147.67C176.46,-135.77 141.89,-118.36 117.31,-105.98"/>
|
||||
</g>
|
||||
<!-- gene_1_transcript_2 -->
|
||||
<g id="node5" class="node">
|
||||
<title>gene_1_transcript_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="226.56" cy="-90" rx="60.56" ry="18"/>
|
||||
<text text-anchor="middle" x="226.56" y="-84.95" font-family="Times,serif" font-size="14.00">Transcript #2</text>
|
||||
<text text-anchor="middle" x="152.5" y="-111.2" font-family="Times,serif" font-size="14.00">#104</text>
|
||||
</g>
|
||||
<!-- gene_1--gene_1_transcript_2 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>gene_1--gene_1_transcript_2</title>
|
||||
<path fill="none" stroke="black" d="M226.56,-143.7C226.56,-132.85 226.56,-118.92 226.56,-108.1"/>
|
||||
</g>
|
||||
<!-- gene_2_transcript_1 -->
|
||||
<g id="node6" class="node">
|
||||
<title>gene_2_transcript_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="365.56" cy="-90" rx="60.56" ry="18"/>
|
||||
<text text-anchor="middle" x="365.56" y="-84.95" font-family="Times,serif" font-size="14.00">Transcript #1</text>
|
||||
<text text-anchor="middle" x="291.5" y="-111.2" font-family="Times,serif" font-size="14.00">#105</text>
|
||||
</g>
|
||||
<!-- gene_2--gene_2_transcript_1 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>gene_2--gene_2_transcript_1</title>
|
||||
<path fill="none" stroke="black" d="M418.91,-145.12C407.93,-133.98 393.29,-119.13 382.12,-107.8"/>
|
||||
</g>
|
||||
<!-- gene_2_transcript_2 -->
|
||||
<g id="node7" class="node">
|
||||
<title>gene_2_transcript_2</title>
|
||||
<ellipse fill="none" stroke="black" cx="504.56" cy="-90" rx="60.56" ry="18"/>
|
||||
<text text-anchor="middle" x="504.56" y="-84.95" font-family="Times,serif" font-size="14.00">Transcript #2</text>
|
||||
<text text-anchor="middle" x="430.5" y="-111.2" font-family="Times,serif" font-size="14.00">#106</text>
|
||||
</g>
|
||||
<!-- gene_2--gene_2_transcript_2 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>gene_2--gene_2_transcript_2</title>
|
||||
<path fill="none" stroke="black" d="M450.45,-145.12C461.74,-133.82 476.87,-118.7 488.26,-107.31"/>
|
||||
</g>
|
||||
<!-- gene_2_transcript_3 -->
|
||||
<g id="node8" class="node">
|
||||
<title>gene_2_transcript_3</title>
|
||||
<ellipse fill="none" stroke="black" cx="643.56" cy="-90" rx="60.56" ry="18"/>
|
||||
<text text-anchor="middle" x="643.56" y="-84.95" font-family="Times,serif" font-size="14.00">Transcript #3</text>
|
||||
<text text-anchor="middle" x="569.5" y="-111.2" font-family="Times,serif" font-size="14.00">#107</text>
|
||||
</g>
|
||||
<!-- gene_2--gene_2_transcript_3 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>gene_2--gene_2_transcript_3</title>
|
||||
<path fill="none" stroke="black" d="M466.76,-150.22C503.86,-137.79 564.81,-117.38 604.56,-104.06"/>
|
||||
</g>
|
||||
<!-- gene_1_transcript_1_exon_1 -->
|
||||
<g id="node9" class="node">
|
||||
<title>gene_1_transcript_1_exon_1</title>
|
||||
<ellipse fill="none" stroke="black" cx="87.56" cy="-18" rx="42.14" ry="18"/>
|
||||
<text text-anchor="middle" x="87.56" y="-12.95" font-family="Times,serif" font-size="14.00">Exon #1</text>
|
||||
<text text-anchor="middle" x="31.93" y="-39.2" font-family="Times,serif" font-size="14.00">#108</text>
|
||||
</g>
|
||||
<!-- gene_1_transcript_1--gene_1_transcript_1_exon_1 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>gene_1_transcript_1--gene_1_transcript_1_exon_1</title>
|
||||
<path fill="none" stroke="black" d="M87.56,-71.7C87.56,-60.85 87.56,-46.92 87.56,-36.1"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
BIN
presentation/img/2560px-Trie_example.svg.png
Normal file
BIN
presentation/img/2560px-Trie_example.svg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 230 KiB |
143
presentation/index.qmd
Normal file
143
presentation/index.qmd
Normal file
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
title: "General Feature index (GFidx)"
|
||||
subtitle: "Space-efficient and fast index for querying large General Feature Format (GFF) files"
|
||||
author: ["<redacted>"]
|
||||
date: "2024-08-01"
|
||||
format:
|
||||
revealjs:
|
||||
transition: fade
|
||||
theme: sakura.scss
|
||||
slideNumber: true
|
||||
embed-resources: true
|
||||
csl: american-chemical-society.csl
|
||||
bibliography: presentation.bib
|
||||
---
|
||||
|
||||
## Introduction {.smaller}
|
||||
|
||||
- General Feature Format (GFF) files are used to store genomic features and annotations. The GFF3 format is a widely used standard for representing genomic feature hierarchies.
|
||||
|
||||
:::: {.columns}
|
||||
|
||||
::: {.column width="50%"}
|
||||
![Sequence Ontology Relationship](http://sequenceontology.org/img/a_slice_of_so.jpg)
|
||||
:::
|
||||
|
||||
::: {.column width="50%"}
|
||||
Each feature in a GFF file is represented as a line of tab-separated fields. The fields include:
|
||||
|
||||
- The range and location of the feature
|
||||
- The Sequence Ontology (SO) [@noauthor_httpwwwsequenceontologyorg_nodate] term of the feature
|
||||
- The Sequence Ontology (SO) parent of the feature
|
||||
- Other attributes such as gene name, gene type, aliases, etc.
|
||||
:::
|
||||
::::
|
||||
|
||||
|
||||
## Motivation {.smaller}
|
||||
|
||||
- GFF files can be very large, making it difficult to query them efficiently:
|
||||
- In the Human GENCODE GFF3 file, there are 3.7 million features. A lot of genes have more than 400 features associated with them.
|
||||
|
||||
:::: {.columns}
|
||||
|
||||
::: {.column width="50%"}
|
||||
- Often only a subset of the features are needed for analysis.
|
||||
- Inefficient to load the entire file into memory.
|
||||
- In a cluster environment, the whole file may be split across multiple nodes
|
||||
- Looking up a feature by ID or attribute requires a linear scan of the file, which is time and resource consuming.
|
||||
:::
|
||||
::: {.column width="50%"}
|
||||
- Example pipelines and operations include:
|
||||
- Gene-centric analysis: large number of ID -> feature queries
|
||||
- RNA alternative splicing analysis: large number of exon -> gene queries
|
||||
- Genome browser: range to feature queries
|
||||
- General queries: Ancestors, descendants and overlaps of a feature
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## Existing Solutions
|
||||
|
||||
- Heuristic-based solutions:
|
||||
- Assume that features are ordered in a way that related features are close to each other.
|
||||
- No guarantee that features are ordered in this way
|
||||
- Only solves the problem for looking up by relation
|
||||
- Relational databases:
|
||||
- Load the GFF file into a database
|
||||
- Requires predefined schema for the attributes
|
||||
- Querying by range or name/ID prefix is still slow
|
||||
|
||||
## GFidx - General Feature index {.smaller}
|
||||
|
||||
![GFidx structure](diagrams/all_indices.svg)
|
||||
|
||||
- A range index is first built to save the approximate location of each feature in the GFF file. This allows further indexing to only save a reference to the feature in the GFF file instead of the whole feature.
|
||||
- Two additional types of indices are built:
|
||||
- Attribute indices: for looking up features by ID or attribute prefix
|
||||
- Relation tree: for looking up features by parent-child relationships
|
||||
|
||||
## Methodology - Lookup by range {.smaller}
|
||||
|
||||
:::: {.columns}
|
||||
::: {.column width="40%"}
|
||||
- For each sequence, split the range into non-overlapping intervals and record the location of the first and last feature that starts in each interval in the GFF file.
|
||||
- Split the intervals recursively until the number of features in each interval is small enough, forming a tree structure.
|
||||
- Some extra data may be returned but by controlling the granularity of the tree, a balance between the amount of unnecessary data and the size of the index can be achieved.
|
||||
:::
|
||||
::: {.column width="60%"}
|
||||
![Range index structure](diagrams/range_index.svg){style="width: 100%"}
|
||||
:::
|
||||
::::
|
||||
|
||||
## Methodology - Lookup by attribute {.smaller}
|
||||
|
||||
- Instead of recording the IDs and attributes by feature, we sort them into a Trie structure, and only record the location of the corresponding feature in the GFF file.
|
||||
- Fast lookup by ID or attribute prefix.
|
||||
- Space-efficient: the long ENSEMBL gene IDs are stored only once.
|
||||
- Fast to build: Only one pass through the GFF file is needed.
|
||||
|
||||
![](diagrams/attr_trie.svg){style="width: 100%"}
|
||||
|
||||
## Methodology - Lookup by relation {.smaller}
|
||||
|
||||
- Parent-child relationships are stored in a tree structure.
|
||||
- Each node contains the range of the feature and a list of children.
|
||||
- The tree is built by iterating through the GFF file and adding each feature to the corresponding parent node in the tree.
|
||||
- Since GFF3 requires all relations to be in the Sequence Ontology structure, the tree structure can be pre-built and reused for different queries.
|
||||
|
||||
![](diagrams/relation_tree.svg){style="width: 100%"}
|
||||
|
||||
## Results {.smaller}
|
||||
|
||||
- A full index of the Human GENCODE [@frankish_gencode_2019] GFF3 file (1.62 GB decompressed) can be built using 3 processors in less than 20 seconds.
|
||||
- All queries are done in less than 0.2 seconds. Demo queries include:
|
||||
- All features of CDCA8 (Cell Division Cycle Associated 8) gene - 34 features, 600 $\mu$s, 272 KB downloaded.
|
||||
- All genes in the SLC35 family (Nucleotide Sugar Transporter Family) - 2,926 features, 128 ms, 22 MB downloaded.
|
||||
- All genes in chr3 from 650,000 to 1,500,000 bp - 243 features, 1.70 ms, 120 KB downloaded.
|
||||
- More effort is needed to optimize the space efficiency of the index:
|
||||
- Simply using an off-the-shelf binary format, the uncompressed index containing all relavant attributes is 268 MB.
|
||||
- Most of the space is used by the relation index, nearly 100 MB.
|
||||
|
||||
## Conclusion
|
||||
|
||||
- GFidx has a potential to be a useful tool for both in-memory and over-the-network querying of large GFF files in certain pipelines and applications.
|
||||
- Web-based services could benefit from GFidx by only downloading the relevant parts of the GFF file.
|
||||
- Further space optimization and parallelization could be done especially on the trie building and relation tree building steps.
|
||||
|
||||
## Future Work {.smaller}
|
||||
|
||||
- More research on common queries and operations on GFF files.
|
||||
- More flexibility on the granularity of indexes to save time and space.
|
||||
- More efficient encoding of feature locations.
|
||||
- Compression of the index using BGZF (used in BAM [@noauthor_bam_nodate] files).
|
||||
- Parallelization of the trie and tree building.
|
||||
- A WebAssembly build for use in web applications such as IGV Genome Browser: only download the file range that is currently being viewed.
|
||||
- Support for features with multiple parents (allowed in GFF3 but rarely used).
|
||||
- Test suites for real-world GFF3 files.
|
||||
- Integration with existing bioinformatics tools and pipelines.
|
||||
|
||||
## References
|
||||
|
||||
::: {#refs}
|
||||
:::
|
35
presentation/presentation.bib
Normal file
35
presentation/presentation.bib
Normal file
|
@ -0,0 +1,35 @@
|
|||
|
||||
@misc{noauthor_httpwwwsequenceontologyorg_nodate,
|
||||
title = {http://www.sequenceontology.org/},
|
||||
shorttitle = {http},
|
||||
url = {http://www.sequenceontology.org/},
|
||||
language = {en-US},
|
||||
urldate = {2024-08-01},
|
||||
file = {Snapshot:/home/yume/Zotero/storage/L3YQIYUL/www.sequenceontology.org.html:text/html},
|
||||
}
|
||||
|
||||
@article{frankish_gencode_2019,
|
||||
title = {{GENCODE} reference annotation for the human and mouse genomes},
|
||||
volume = {47},
|
||||
issn = {1362-4962},
|
||||
doi = {10.1093/nar/gky955},
|
||||
abstract = {The accurate identification and description of the genes in the human and mouse genomes is a fundamental requirement for high quality analysis of data informing both genome biology and clinical genomics. Over the last 15 years, the GENCODE consortium has been producing reference quality gene annotations to provide this foundational resource. The GENCODE consortium includes both experimental and computational biology groups who work together to improve and extend the GENCODE gene annotation. Specifically, we generate primary data, create bioinformatics tools and provide analysis to support the work of expert manual gene annotators and automated gene annotation pipelines. In addition, manual and computational annotation workflows use any and all publicly available data and analysis, along with the research literature to identify and characterise gene loci to the highest standard. GENCODE gene annotations are accessible via the Ensembl and UCSC Genome Browsers, the Ensembl FTP site, Ensembl Biomart, Ensembl Perl and REST APIs as well as https://www.gencodegenes.org.},
|
||||
language = {eng},
|
||||
number = {D1},
|
||||
journal = {Nucleic Acids Research},
|
||||
author = {Frankish, Adam and Diekhans, Mark and Ferreira, Anne-Maud and Johnson, Rory and Jungreis, Irwin and Loveland, Jane and Mudge, Jonathan M. and Sisu, Cristina and Wright, James and Armstrong, Joel and Barnes, If and Berry, Andrew and Bignell, Alexandra and Carbonell Sala, Silvia and Chrast, Jacqueline and Cunningham, Fiona and Di Domenico, Tomás and Donaldson, Sarah and Fiddes, Ian T. and García Girón, Carlos and Gonzalez, Jose Manuel and Grego, Tiago and Hardy, Matthew and Hourlier, Thibaut and Hunt, Toby and Izuogu, Osagie G. and Lagarde, Julien and Martin, Fergal J. and Martínez, Laura and Mohanan, Shamika and Muir, Paul and Navarro, Fabio C. P. and Parker, Anne and Pei, Baikang and Pozo, Fernando and Ruffier, Magali and Schmitt, Bianca M. and Stapleton, Eloise and Suner, Marie-Marthe and Sycheva, Irina and Uszczynska-Ratajczak, Barbara and Xu, Jinuri and Yates, Andrew and Zerbino, Daniel and Zhang, Yan and Aken, Bronwen and Choudhary, Jyoti S. and Gerstein, Mark and Guigó, Roderic and Hubbard, Tim J. P. and Kellis, Manolis and Paten, Benedict and Reymond, Alexandre and Tress, Michael L. and Flicek, Paul},
|
||||
month = jan,
|
||||
year = {2019},
|
||||
pmid = {30357393},
|
||||
pmcid = {PMC6323946},
|
||||
keywords = {Animals, Computational Biology, Databases, Genetic, Genome, Human, Genomics, Humans, Internet, Mice, Molecular Sequence Annotation, Pseudogenes, Software},
|
||||
pages = {D766--D773},
|
||||
file = {Full Text:/home/yume/Zotero/storage/6JNTGDLZ/Frankish et al. - 2019 - GENCODE reference annotation for the human and mou.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@misc{noauthor_bam_nodate,
|
||||
title = {{BAM} {File} {Format}},
|
||||
url = {https://support.illumina.com/help/BS_App_RNASeq_Alignment_OLH_1000000006112/Content/Source/Informatics/BAM-Format.htm},
|
||||
urldate = {2024-08-01},
|
||||
file = {BAM File Format:/home/yume/Zotero/storage/4DTFGIN2/BAM-Format.html:text/html},
|
||||
}
|
53
presentation/sakura.scss
Normal file
53
presentation/sakura.scss
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*-- scss:defaults --*/
|
||||
|
||||
@import url(./fonts/league-gothic/league-gothic.css);
|
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
|
||||
|
||||
// fonts
|
||||
$font-family-sans-serif: Lato, sans-serif !default;
|
||||
|
||||
// colors
|
||||
$body-bg: darken(#FEDFE1, 6%) !default;
|
||||
$body-color: #333 !default;
|
||||
$link-color: #F596AA !default;
|
||||
$link-color-hover: darken($link-color, 5%) !default;
|
||||
$selection-bg: rgba(88, 178, 220, 0.99) !default;
|
||||
|
||||
// headings
|
||||
$presentation-heading-font: "League Gothic", sans-serif !default;
|
||||
$presentation-heading-text-transform: uppercase !default;
|
||||
$presentation-h1-font-size: 3.77em !default;
|
||||
$presentation-h1-text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb,
|
||||
0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1),
|
||||
0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3),
|
||||
0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25),
|
||||
0 20px 20px rgba(0, 0, 0, 0.15);
|
||||
|
||||
// code blocks
|
||||
$code-block-bg: transparent !default;
|
||||
|
||||
/*-- scss:mixins --*/
|
||||
|
||||
@mixin bodyBackground() {
|
||||
@include radial-gradient(rgba(254, 223, 225, 1), rgba(255, 255, 255, 1));
|
||||
}
|
||||
|
||||
/*-- scss:presentation --*/
|
||||
|
||||
section img {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-image: url('data:image/svg+xml,<%3Fxml version="1.0" encoding="UTF-8"%3F><svg transform="translate(0, 0)" transform-origin="center" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"><path fill="%23E87A90" d="M 137.00,92.00 C 137.23,72.09 144.33,46.27 152.15,28.00 152.15,28.00 161.25,8.00 161.25,8.00 162.35,5.79 164.05,1.59 166.39,0.59 172.77,-2.13 184.79,10.68 188.39,15.00 189.68,16.55 192.11,20.05 194.17,20.38 196.53,20.76 200.16,17.29 202.00,15.90 206.71,12.35 212.83,8.05 218.00,5.31 219.98,4.26 222.66,2.72 224.96,3.41 227.64,4.22 229.62,7.76 231.05,10.00 235.40,16.81 237.41,21.58 240.40,29.00 252.21,58.35 249.52,94.04 238.00,123.00 247.43,115.05 259.28,110.66 271.00,107.29 299.53,99.10 332.84,101.15 362.00,105.00 361.99,119.51 356.75,128.14 349.00,140.00 356.63,142.41 365.85,149.46 372.00,154.61 374.54,156.75 377.75,159.32 377.58,163.00 377.44,166.03 373.92,170.59 372.10,173.00 365.62,181.58 361.48,185.75 353.00,192.34 333.81,207.22 307.09,214.28 283.00,214.00 283.00,214.00 272.00,213.00 272.00,213.00 272.00,213.00 280.58,221.09 280.58,221.09 299.53,241.54 309.39,267.31 315.87,294.00 315.87,294.00 320.13,319.00 320.13,319.00 320.65,321.47 321.66,326.15 320.13,328.28 318.41,330.33 313.45,330.92 311.00,330.92 303.89,330.93 291.54,327.87 285.00,325.00 282.86,335.64 281.14,339.18 277.20,349.00 276.03,351.92 274.62,356.32 271.79,357.98 267.22,360.66 256.47,355.46 252.00,353.36 233.93,344.88 217.91,329.47 208.31,312.00 205.21,306.36 199.72,294.10 198.24,288.00 198.02,287.10 196.00,274.56 196.81,267.56 193.81,276.81 189.19,284.81 182.87,293.00 168.76,311.55 144.92,327.62 124.00,337.74 124.00,337.74 103.00,346.95 103.00,346.95 100.75,347.76 96.87,349.38 94.64,347.97 92.38,346.54 90.84,341.51 90.29,339.00 88.49,330.78 89.00,322.35 89.00,314.00 89.00,314.00 69.00,312.71 69.00,312.71 69.00,312.71 53.00,310.00 53.00,310.00 53.00,310.00 53.00,301.00 53.00,301.00 53.04,278.53 65.65,253.94 81.28,238.28 90.51,229.04 98.19,224.59 108.00,217.00 108.00,217.00 103.00,217.00 103.00,217.00 76.30,216.96 43.89,199.52 23.00,183.87 23.00,183.87 7.00,171.25 7.00,171.25 4.82,169.41 1.45,166.86 0.71,164.00 -0.20,160.52 2.70,157.44 5.04,155.30 10.58,150.25 20.61,144.39 28.00,143.00 28.00,143.00 18.28,118.00 18.28,118.00 17.48,115.34 15.63,110.88 16.64,108.21 17.77,105.20 23.17,103.15 26.00,102.06 35.52,98.42 45.79,96.02 56.00,96.00 65.37,95.99 71.59,95.65 81.00,97.46 98.03,100.73 128.01,115.78 142.00,126.00 139.46,113.35 136.85,105.53 137.00,92.00 Z" /><path fill="%23F596AA" d="M 176.00,6.21 C 173.91,4.75 170.03,1.89 167.39,3.15 165.24,4.18 162.86,9.79 161.75,12.00 161.75,12.00 151.80,35.00 151.80,35.00 138.41,69.07 131.49,116.20 156.00,147.00 156.00,147.00 141.90,128.52 141.90,128.52 136.55,123.87 120.85,115.63 114.00,112.36 107.06,109.06 100.36,105.37 93.00,103.03 65.76,94.36 43.89,96.86 18.00,108.00 21.51,126.65 28.02,133.77 31.00,144.00 24.31,145.25 13.31,151.21 8.02,155.52 5.67,157.42 2.11,160.55 3.25,163.96 4.14,166.65 10.61,171.28 13.00,173.25 23.73,182.10 31.25,187.30 43.00,194.58 60.53,205.43 85.17,214.97 106.00,215.00 115.33,215.01 119.78,214.72 129.00,212.57 129.00,212.57 141.00,209.00 141.00,209.00 135.04,211.53 130.39,213.69 124.00,215.25 118.72,216.55 115.21,215.99 110.00,218.71 106.33,220.63 99.58,225.93 96.00,228.63 69.30,248.69 55.00,274.58 55.00,308.00 55.00,308.00 71.00,310.71 71.00,310.71 71.00,310.71 92.00,312.00 92.00,312.00 92.00,312.00 91.09,323.00 91.09,323.00 90.71,329.79 92.87,340.48 95.00,347.00 103.18,345.72 124.27,335.39 132.00,331.00 156.57,317.04 177.83,301.76 191.22,276.00 193.24,272.11 195.44,265.19 196.50,261.06 198.13,255.38 199.46,241.32 200.06,239.50 200.06,239.50 199.37,249.65 199.06,258.75 198.81,266.25 199.00,273.00 199.00,273.00 199.03,293.46 210.92,316.58 225.01,331.00 234.67,340.89 244.30,347.69 257.00,353.13 259.70,354.28 267.07,357.25 269.78,356.31 272.40,355.40 273.69,351.35 274.77,349.00 277.69,342.62 282.39,329.81 283.00,323.00 292.47,324.46 295.58,327.85 308.00,328.00 310.45,328.02 316.40,328.53 317.76,326.40 319.19,324.67 317.91,317.30 317.76,315.00 317.76,315.00 311.35,285.00 311.35,285.00 311.35,285.00 306.05,269.00 306.05,269.00 298.23,247.61 287.56,227.93 269.00,213.90 254.43,202.88 250.00,204.42 242.00,200.00 256.15,202.85 260.55,207.70 269.00,209.76 288.00,214.39 315.46,210.21 333.00,201.74 346.98,194.99 356.94,188.10 366.92,176.00 369.13,173.32 374.86,166.39 375.04,163.00 375.22,159.50 371.43,156.96 369.00,155.00 362.60,149.87 353.89,143.26 346.00,141.00 352.61,129.23 359.68,121.34 360.00,107.00 360.00,107.00 330.00,104.00 330.00,104.00 330.00,104.00 306.00,104.00 306.00,104.00 285.22,104.03 257.05,111.83 240.00,123.77 229.26,131.28 226.80,135.24 219.00,145.00 219.00,145.00 224.38,137.00 224.38,137.00 228.09,132.36 232.56,129.43 235.29,124.00 239.62,115.40 242.80,101.60 244.13,92.00 248.54,60.22 243.64,31.58 225.00,5.00 212.41,8.60 203.32,18.66 193.00,26.00 189.46,18.78 182.59,10.82 176.00,6.21z" /></svg>');
|
||||
/* Use translate(X, Y) to position the SVG up, down, left, and right */
|
||||
}
|
||||
|
||||
li::marker {
|
||||
font-size: 1.5em;
|
||||
line-height: 0.1em;
|
||||
}
|
||||
|
||||
ol.aside-footnotes li {
|
||||
list-style-image: none;
|
||||
}
|
Loading…
Reference in a new issue