0
|
1 <?xml version="1.0"?>
|
|
2 <tool name="honto" id="honto" version="0.1.0">
|
|
3 <description>A novel method for assessing and measuring homophily in networks</description>
|
|
4
|
|
5 <!-- Tool developers -->
|
|
6 <creator>
|
|
7 <person givenName="Paolo" familyName="Franciosa"
|
|
8 url="http://www.statistica.uniroma1.it/users/pfrancio/"
|
|
9 email="paolo.franciosa@uniroma1.it" />
|
|
10
|
|
11 <person givenName="Nicola" familyName="Apollonio"
|
|
12 url="https://www.iac.rm.cnr.it/~apollonio/"
|
|
13 email="nicola.apollonio@cnr.it" />
|
|
14
|
|
15 <person givenName="Daniele" familyName="Santoni"
|
|
16 url="http://www.iasi.cnr.it/~dsantoni/"
|
|
17 email="daniele.santoni@iasi.cnr.it" />
|
|
18
|
|
19 <person givenName="Fabio" familyName="Cumbo"
|
|
20 url="https://fabio-cumbo.github.io/"
|
|
21 email="fabio.cumbo@gmail.com" />
|
|
22 </creator>
|
|
23
|
|
24 <!-- Define dependencies -->
|
|
25 <requirements>
|
|
26 <requirement type="package" version="0.1.0">honto</requirement>
|
|
27 </requirements>
|
|
28
|
|
29 <command detect_errors="exit_code">
|
|
30 <![CDATA[
|
|
31 ln -s ${edges} edges.txt;
|
|
32 ln -s ${nodes} nodes.txt;
|
|
33
|
|
34 honto
|
|
35
|
|
36 --input_edges edges.txt
|
|
37 --input_nodes nodes.txt
|
|
38 --weight_threshold ${weight_threshold}
|
|
39
|
|
40 #if $isolated == "yes":
|
|
41 --isolated
|
|
42 #end if
|
|
43
|
|
44 #if $log_transform.enable_lt == "yes":
|
|
45 --log_transform
|
|
46 #if $log_transform.scale_log.scale_type == "factor":
|
|
47 --scale_factor $log_transform.scale_log.scale_value
|
|
48 #elif $log_transform.scale_log.scale_type == "from_one":
|
|
49 --scale_from_one
|
|
50 #end if
|
|
51 #end if
|
|
52
|
|
53 --cmap $heatmap.cmap
|
|
54 --vmin $heatmap.vmin
|
|
55 --vmax $heatmap.vmax
|
|
56 --center $heatmap.center
|
|
57 #if $heatmap.cbar == "yes":
|
|
58 --cbar
|
|
59 #end if
|
|
60
|
|
61 --nproc "\${GALAXY_SLOTS:-4}"
|
|
62 --overwrite
|
|
63 --verbose
|
|
64 ]]>
|
|
65 </command>
|
|
66
|
|
67 <inputs>
|
|
68 <!-- Select edges -->
|
|
69 <param name="edges" type="data" format="tsv"
|
|
70 label="Select a network"
|
|
71 help="Input network with the list of edges, one per line." />
|
|
72
|
|
73 <!-- Select colors -->
|
|
74 <param name="nodes" type="data" format="tsv"
|
|
75 label="Select a nodes definition file"
|
|
76 help="This file contains a mapping between node names and colors." />
|
|
77
|
|
78 <!-- Weight threshold -->
|
|
79 <param name="weight_threshold" type="integer" value="700" min="0"
|
|
80 label="Weight threshold"
|
|
81 help="Threshold for considering edges based in their weight." />
|
|
82
|
|
83 <!-- Isolated -->
|
|
84 <param name="isolated" type="boolean" checked="false" truevalue="yes" falsevalue="no"
|
|
85 label="Insert isolated nodes" />
|
|
86
|
|
87 <!-- Log-transformation options -->
|
|
88 <conditional name="log_transform">
|
|
89 <!-- Enable log-transformation -->
|
|
90 <param name="enable_lt" type="boolean" checked="false" truevalue="yes" falsevalue="no"
|
|
91 label="Log-transform z-scores" />
|
|
92
|
|
93 <when value="yes">
|
|
94 <!-- Scale options -->
|
|
95 <conditional name="scale_log">
|
|
96 <!-- Select a scale option -->
|
|
97 <param name="scale_type" type="select" label="Choose one of the available scale options">
|
|
98 <option value="default" selected="true">Scale automatically</option>
|
|
99 <option value="factor">Factor</option>
|
|
100 <option value="from_one">Truncate from one</option>
|
|
101 </param>
|
|
102
|
|
103 <!-- In case of "factor" -->
|
|
104 <when value="factor">
|
|
105 <param name="scale_value" type="float" value="0.0"
|
|
106 label="Scale factor"
|
|
107 help="Rescale z-scores with this constant before log-transforming values." />
|
|
108 </when>
|
|
109 </conditional>
|
|
110 </when>
|
|
111 </conditional>
|
|
112
|
|
113 <!-- Heatmap customization options -->
|
|
114 <section name="heatmap" expanded="true"
|
|
115 title="Heatmap customization"
|
|
116 help="Access advanced options to customize the produced heatmap by specifying the colormap, scale, and color bar">
|
|
117 <!-- Colormap -->
|
|
118 <param name="cmap" type="text" value="PiYG"
|
|
119 label="Heatmap colormap" />
|
|
120
|
|
121 <!-- Vmin -->
|
|
122 <param name="vmin" type="float" value="2.2967"
|
|
123 label="Select a vmin value"
|
|
124 help="Min value to anchor the colormap" />
|
|
125
|
|
126 <!-- Vmax -->
|
|
127 <param name="vmax" type="float" value="4.3957"
|
|
128 label="Select a vmax value"
|
|
129 help="Max value to anchor the colormap" />
|
|
130
|
|
131 <!-- Center -->
|
|
132 <param name="center" type="float" value="2.9957"
|
|
133 label="Select a center"
|
|
134 help="The value at which to center the colormap when plotting divergent data" />
|
|
135
|
|
136 <!-- Cbar -->
|
|
137 <param name="cbar" type="boolean" checked="false" truevalue="yes" falsevalue="no"
|
|
138 label="Add a color bar" />
|
|
139 </section>
|
|
140 </inputs>
|
|
141
|
|
142 <outputs>
|
|
143 <!-- Output z-scores edges -->
|
|
144 <data format="tsv" name="zscores_edges"
|
|
145 label="${tool.name} on ${on_string}: Edges z-scores"
|
|
146 from_work_dir="edges_zscores_edges.txt" />
|
|
147
|
|
148 <!-- Output z-scores singletons -->
|
|
149 <data format="tsv" name="zscores_singletons"
|
|
150 label="${tool.name} on ${on_string}: Singletons z-scores"
|
|
151 from_work_dir="edges_zscores_singletons.txt" />
|
|
152
|
|
153 <!-- Output heatmap -->
|
|
154 <data format="pdf" name="out_heatmap"
|
|
155 label="${tool.name} on ${on_string}: Heatmap"
|
|
156 from_work_dir="edges.pdf" />
|
|
157 </outputs>
|
|
158
|
|
159 <help><![CDATA[
|
|
160 **Homophily Network Tool**
|
|
161
|
|
162 `honto` is a tool designed for assessing and measuring homophily in networks whose nodes have categorical attributes,
|
|
163 namely when the nodes of networks come partitioned into classes.
|
|
164
|
|
165 Homophily evaluation is performed through the comparison between the relative edge density of the subgraphs,
|
|
166 induced by each class, and the corresponding expected relative edge density under a null model.
|
|
167
|
|
168 The novelty of our approach consists in prescribing an endogenous null model, namely, the sample space of the null model
|
|
169 is built on the input network itself. This allows us to give exact explicit expressions for the z-scores of the
|
|
170 relative edge density of each class as well as other related statistics
|
|
171
|
|
172 -----
|
|
173
|
|
174 **Input**
|
|
175
|
|
176 The first input is file representing an undirected network composed by a list of edges like the example below.
|
|
177 No header lines are allowed.
|
|
178
|
|
179 +--------+--------+
|
|
180 | TP0001 | TP1015 |
|
|
181 +--------+--------+
|
|
182 | TP0001 | TP0949 |
|
|
183 +--------+--------+
|
|
184 | TP0001 | TP0692 |
|
|
185 +--------+--------+
|
|
186 | ... | ... |
|
|
187 +--------+--------+
|
|
188 | TP0976 | TP0977 |
|
|
189 +--------+--------+
|
|
190 | TP1032 | TP1033 |
|
|
191 +--------+--------+
|
|
192
|
|
193
|
|
194 Please note that the above mentioned file could also have an additional column with numeric weight values.
|
|
195 You may want to avoid considering some nodes by applying a threshold on this column.
|
|
196
|
|
197 The second input is the nodes definition file. It contains a row for each node in the network with two columns
|
|
198 with a mapping between the node name and a color or group id, like in the example below.
|
|
199 No header lines are allowed in this case either.
|
|
200
|
|
201 +--------+-----+
|
|
202 | TP0001 | L |
|
|
203 +--------+-----+
|
|
204 | TP1015 | K |
|
|
205 +--------+-----+
|
|
206 | TP0949 | U |
|
|
207 +--------+-----+
|
|
208 | TP0692 | L |
|
|
209 +--------+-----+
|
|
210 | ... | ... |
|
|
211 +--------+-----+
|
|
212 | TP1032 | X |
|
|
213 +--------+-----+
|
|
214 | TP1033 | X |
|
|
215 +--------+-----+
|
|
216
|
|
217 -----
|
|
218
|
|
219 **Output**
|
|
220
|
|
221 The tool produces three output files. Two of them contains the z-scores for both edges and singletons.
|
|
222 The third output is a PDF with the final heatmap.
|
|
223
|
|
224 -----
|
|
225
|
|
226 .. class:: infomark
|
|
227
|
|
228 **Notes**
|
|
229
|
|
230 Please visit the official GitHub repository_ for other information about `honto`.
|
|
231
|
|
232 .. _repository: https://github.com/fabio-cumbo/honto
|
|
233 ]]></help>
|
|
234
|
|
235 </tool> |