Skip to content

Commit 41fa9da

Browse files
committed
Update version number
1 parent a10a073 commit 41fa9da

File tree

110 files changed

+30323
-204
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+30323
-204
lines changed

DESCRIPTION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: geneviewer
22
Type: Package
33
Title: Gene Cluster Visualizations in R
4-
Version: 0.1.3
4+
Version: 0.1.4
55
Author: Niels van der Velden
66
Maintainer: Niels van der Velden <[email protected]>
77
Description: 'geneviewer' is an R package designed to plot gene arrow maps.

NEWS.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# geneviewer 0.1.4
2+
3+
### Enhancements:
4+
- Add option to add gene links.
5+
- Change package name from GCVieweR to geneviewer.
6+
17
# geneviewer 0.1.3
28

39
### Enhancements:

docs/404.html

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/LICENSE-text.html

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/LICENSE.html

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/articles/Examples.html

+12-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/articles/Examples_files/D3-7.8.5/geneviewer.yaml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
dependencies:
22
- name: geneviewerwidget
3-
version: 0.1.0
3+
version: 0.1.4
44
src: htmlwidgets
55
script: geneviewerwidget.js
66
- name: Themes
7-
version: 0.1.0
7+
version: 0.1.4
88
src: htmlwidgets
9-
script: ./lib/geneviewer-0.1.3/Themes.js
9+
script: ./lib/geneviewer-0.1.4/Themes.js
1010
- name: geneviewer
11-
version: 0.1.2
11+
version: 0.1.4
1212
src: htmlwidgets
13-
script: ./lib/geneviewer-0.1.3/geneviewer.js
13+
script: ./lib/geneviewer-0.1.4/geneviewer.js
1414
- name: D3
1515
version: 7.8.5
1616
src: htmlwidgets
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
dependencies:
2+
- name: geneviewerwidget
3+
version: 0.1.4
4+
src: htmlwidgets
5+
script: geneviewerwidget.js
6+
- name: Themes
7+
version: 0.1.4
8+
src: htmlwidgets
9+
script: ./lib/geneviewer-0.1.4/Themes.js
10+
- name: geneviewer
11+
version: 0.1.4
12+
src: htmlwidgets
13+
script: ./lib/geneviewer-0.1.4/geneviewer.js
14+
- name: D3
15+
version: 7.8.5
16+
src: htmlwidgets
17+
script: ./lib/D3-7.8.5/d3.min.js
18+
stylesheet: ./lib/styles.css
19+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
HTMLWidgets.widget({
2+
name: 'geneviewer',
3+
type: 'output',
4+
5+
factory: function (el, width, height) {
6+
var
7+
graphContainer,
8+
style,
9+
data,
10+
links,
11+
series,
12+
titleOptions,
13+
legendOptions;
14+
15+
var widgetId = el.id.split('-')[1];
16+
17+
var draw = function (width, height) {
18+
19+
// Clear out the container if it has anything
20+
d3.select(el).selectAll('*').remove();
21+
22+
el.style["height"] = "100%"
23+
24+
// Apply styles
25+
if (style && typeof style === 'object' && Object.keys(style).length > 0) {
26+
// Apply styles from the style object
27+
for (var key in style) {
28+
if (style.hasOwnProperty(key)) {
29+
el.style[key] = style[key];
30+
}
31+
}
32+
}
33+
34+
// Add Title
35+
36+
if (titleOptions !== null && titleOptions?.height !== null && titleOptions?.show) {
37+
38+
var titleContainer = d3.select(el)
39+
.append("div")
40+
.attr("id", `geneviewer-title-container-${widgetId}`)
41+
.classed("geneviewer-container", true);
42+
43+
44+
titleOptions.width = el.clientWidth
45+
titleOptions.height = computeSize(titleOptions.height, el.clientHeight)
46+
47+
var title = createContainer(
48+
`#geneviewer-title-container-${widgetId}`,
49+
"svg-container",
50+
"titleOptions",
51+
titleOptions)
52+
.title(titleOptions?.title, titleOptions?.subtitle, titleOptions?.show ?? false, titleOptions)
53+
}
54+
55+
// Add legend
56+
57+
var legendHeight = (legendOptions?.show === false) ? 0 : computeSize(legendOptions?.height, el.clientHeight);
58+
59+
if (legendOptions?.group !== null && legendOptions?.show) {
60+
61+
var legendContainer = d3.select(el)
62+
.append("div")
63+
.attr("id", `geneviewer-legend-container-${widgetId}`)
64+
.classed("geneviewer-container", true);
65+
66+
legendOptions.width = width
67+
legendOptions.height = computeSize(legendOptions.height, el.clientHeight)
68+
69+
var legendContainer = createContainer(`#geneviewer-legend-container-${widgetId}`,
70+
"svg-container",
71+
"legendOptions",
72+
legendOptions)
73+
.legendData(data)
74+
.legend(legendOptions?.group ?? false, legendOptions?.show ?? false, el.id, legendOptions);
75+
76+
var legendElement = d3.select(`#geneviewer-legend-container-${widgetId}`).node();
77+
var legendDimensions = legendElement.getBoundingClientRect();
78+
legendHeight = legendDimensions.height;
79+
80+
}
81+
82+
var graph = d3.select(el)
83+
.append("div")
84+
.attr("id", `geneviewer-graph-container-${widgetId}`)
85+
.style("flex-direction", graphContainer["direction"])
86+
.classed("geneviewer-container", true);
87+
88+
// Add Clusters
89+
var clusters = Object.keys(series);
90+
// Add Links
91+
if(links && links.length > 0){
92+
var graphLinks = links.reduce((acc, entry) => {
93+
const convertedData = HTMLWidgets.dataframeToD3(entry.data);
94+
acc = acc.concat(convertedData);
95+
return acc;
96+
}, []);
97+
}
98+
99+
clusters.forEach(function (clusterKey) {
100+
101+
var cluster = series[clusterKey],
102+
containerOptions = cluster.container,
103+
clusterOptions = cluster.cluster,
104+
clusterData = HTMLWidgets.dataframeToD3(series[clusterKey].data),
105+
scaleOptions = cluster.scale,
106+
clusterTitleOptions = cluster.clusterTitle,
107+
footerOptions = cluster.footer,
108+
clusterLabelOptions = cluster.clusterLabel,
109+
labelOptions = cluster.labels,
110+
sequenceOptions = cluster.sequence,
111+
geneOptions = cluster.genes,
112+
coordinateOptions = cluster.coordinates;
113+
scaleBarOptions = cluster.scaleBar;
114+
annotationOptions = cluster.annotations;
115+
trackMouse = cluster.trackMouse;
116+
tooltipOptions = cluster.tooltip;
117+
118+
var clonedContainerOptions = JSON.parse(JSON.stringify(containerOptions));
119+
clonedContainerOptions.height = computeSize(clonedContainerOptions.height, el.clientHeight);
120+
clonedContainerOptions.height -= titleOptions.height ? (titleOptions.height / clusters.length) : 0;
121+
clonedContainerOptions.height -= legendHeight ? (legendHeight / clusters.length) : 0;
122+
clonedContainerOptions.width = computeSize(clonedContainerOptions.width, el.clientWidth);
123+
124+
var clusterLinks = getClusterLinks(graphLinks, clusterKey);
125+
126+
var cluster = createContainer(`#geneviewer-graph-container-${widgetId}`, "svg-container", 'containerOptions', clonedContainerOptions)
127+
.cluster(clusterOptions)
128+
.theme("preset")
129+
.title(clusterTitleOptions?.title, clusterTitleOptions?.subtitle, clusterTitleOptions?.show ?? false, clusterTitleOptions)
130+
.footer(footerOptions?.title, footerOptions?.subtitle, footerOptions?.show ?? false, footerOptions)
131+
.clusterLabel(clusterLabelOptions?.title, clusterLabelOptions?.show ?? false, clusterLabelOptions)
132+
.geneData(data, clusterData)
133+
.scale(scaleOptions)
134+
.sequence(sequenceOptions?.show ?? false, sequenceOptions)
135+
.genes(geneOptions?.group, geneOptions?.show ?? false, geneOptions)
136+
.links(clusterLinks, clusterKey)
137+
.coordinates(coordinateOptions?.show ?? false, coordinateOptions)
138+
.labels(labelOptions?.label, labelOptions?.show ?? false, labelOptions)
139+
.scaleBar(scaleBarOptions?.show ?? false, scaleBarOptions)
140+
.addAnnotations(annotationOptions)
141+
.trackMouse(trackMouse?.show ?? false)
142+
.tooltip(tooltipOptions?.show ?? false, tooltipOptions);
143+
144+
});
145+
146+
// Bottom Legend
147+
if (legendOptions?.position == "bottom" && legendOptions?.show && legendOptions?.group !== null) {
148+
149+
d3.select(`#geneviewer-legend-container-${widgetId}`).remove();
150+
151+
var legendContainer = d3.select(el)
152+
.append("div")
153+
.attr("id", `geneviewer-legend-container-${widgetId}`)
154+
.classed("geneviewer-container", true);
155+
156+
var legendContainer = createContainer(`#geneviewer-legend-container-${widgetId}`,
157+
"svg-container",
158+
"legendOptions",
159+
legendOptions)
160+
.legendData(data)
161+
.legend(legendOptions?.group ?? false, legendOptions?.show ?? false, el.id, legendOptions);
162+
163+
}
164+
165+
};
166+
167+
var addLinks = function(width, height) {
168+
169+
if (!links || links.length === 0) {
170+
return;
171+
}
172+
// Remove all existing links
173+
const graphContainer = d3.select(`#geneviewer-graph-container-${widgetId}`);
174+
//graphContainer.selectAll(".link-marker").remove();
175+
176+
makeLinks(graphContainer, links);
177+
178+
};
179+
180+
return {
181+
renderValue: function (input) {
182+
graphContainer = input.graphContainer;
183+
style = input.style;
184+
data = HTMLWidgets.dataframeToD3(input.data);
185+
links = input.links;
186+
series = input.series;
187+
titleOptions = input.title;
188+
legendOptions = input.legend;
189+
draw(width, height);
190+
addLinks(width, height);
191+
},
192+
resize: function (width, height) {
193+
draw(width, height);
194+
addLinks(width, height);
195+
}
196+
};
197+
}
198+
});

docs/articles/Examples_files/Themes-0.1.4/lib/D3-7.8.5/d3.min.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
.geneviewer-container {
2+
display: flex;
3+
flex-direction: column; /* or row, depending on the desired layout */
4+
align-content: stretch;
5+
}
6+
7+
.geneviewer-svg-content {
8+
flex: 1 1 auto; /* This makes the SVGs grow and shrink as needed */
9+
min-height: 0; /* This may be needed for correct sizing in some browsers */
10+
}
11+
12+
.hovered {
13+
cursor: pointer !important;
14+
}
15+
16+
.geneviewer-svg-content {
17+
z-index: 2;
18+
}
19+
20+
/* Common styles */
21+
.legend .legend-marker,
22+
.legend .legend-label
23+
.label. {
24+
transition: 0.3s ease-in-out; /* Smooth transitions */
25+
}
26+
27+
/* Hover styles: Gives a dim effect to the marker and text when hovered */
28+
.legend.hovered .legend-marker,
29+
.legend.hovered .legend-label,
30+
.label.hovered {
31+
opacity: 0.7;
32+
}
33+
34+
/* Highlighted/Clicked styles: Gives a more dimmed effect to both marker and text when clicked */
35+
.legend.unselected .legend-marker,
36+
.legend.unselected .legend-label {
37+
opacity: 0.5;
38+
}
39+
40+
.gene.hovered {
41+
filter: brightness(80%);
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
dependencies:
2+
- name: geneviewerwidget
3+
version: 0.1.4
4+
src: htmlwidgets
5+
script: geneviewerwidget.js
6+
- name: Themes
7+
version: 0.1.4
8+
src: htmlwidgets
9+
script: ./lib/geneviewer-0.1.4/Themes.js
10+
- name: geneviewer
11+
version: 0.1.4
12+
src: htmlwidgets
13+
script: ./lib/geneviewer-0.1.4/geneviewer.js
14+
- name: D3
15+
version: 7.8.5
16+
src: htmlwidgets
17+
script: ./lib/D3-7.8.5/d3.min.js
18+
stylesheet: ./lib/styles.css
19+

0 commit comments

Comments
 (0)