Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Remi PLANEL
bioviz-js
Commits
dd835750
Commit
dd835750
authored
Apr 03, 2019
by
Remi PLANEL
Browse files
zoom-in and zoom-out for the genome browser
parent
29392ff2
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/scripts/index.ts
View file @
dd835750
...
...
@@ -3,11 +3,17 @@ import GenomeAxis from "./component/sequence/genome-axis";
import
{
select
}
from
"
d3-selection
"
;
import
{
of
}
from
"
rxjs
"
;
const
width
=
1500
;
const
genomeWindowSize
=
6000
;
let
genomeWindowSize
=
6000
;
let
centerWindow
=
23000
;
const
geneComponent
=
GeneComponent
();
const
genomeAxis
=
GenomeAxis
();
const
clickHandler
=
([
begin
,
end
]:
[
number
,
number
])
=>
draw
((
end
+
begin
)
/
2
);
const
clickHandler
=
([
begin
,
end
]:
[
number
,
number
])
=>
{
centerWindow
=
(
end
+
begin
)
/
2
;
draw
();
};
const
genes
:
Array
<
GeneData
>
=
[
{
name
:
"
gene 1
"
,
...
...
@@ -41,22 +47,33 @@ const genes: Array<GeneData> = [
}
]
select
(
"
#zoom-in
"
).
on
(
"
click
"
,
function
()
{
genomeWindowSize
-=
1000
;
draw
()
});
select
(
"
#zoom-out
"
).
on
(
"
click
"
,
function
()
{
genomeWindowSize
+=
1000
;
draw
()
});
function
draw
(
centerGenome
:
number
)
{
/*
FUNCTIONS
*/
function
draw
()
{
const
svg
=
select
<
SVGSVGElement
,
any
>
(
"
svg
"
).
attr
(
"
width
"
,
width
+
1
).
attr
(
"
height
"
,
900
);
const
genomeAxisElem
=
svg
.
select
<
SVGElement
>
(
"
#axis
"
);
const
geneElem
=
svg
.
select
<
SVGElement
>
(
"
#genes
"
);
genomeAxisElem
.
datum
(
getGenomeWindow
(
center
Genome
,
genomeWindowSize
))
.
datum
(
getGenomeWindow
(
center
Window
,
genomeWindowSize
))
.
call
(
genomeAxis
,
width
,
0
);
geneElem
.
datum
<
Array
<
GeneData
>>
(
genes
)
.
call
(
geneComponent
,
genomeAxis
.
scale
(),
40
);
}
draw
(
23000
);
draw
();
function
getGenomeWindow
(
middle
:
number
,
genomeWindowSize
:
number
):
[
number
,
number
]
{
const
halfWindow
=
genomeWindowSize
/
2
;
return
[
middle
-
halfWindow
,
middle
+
halfWindow
]
}
\ No newline at end of file
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment