Sim_GOGO_2018
Sim_GOGO_2018(
dag,
terms,
contribution_factor = c(is_a = 0.4, part_of = 0.3),
calc_by = "igraph",
verbose = simona_opt$verbose
)
It is very similar as Sim_Wang_2007, but with a corrected contribution factor when calculating the S-value. From a parent term to a child term, Sim_Wang_2007 directly uses a weight for the relation between the parent and the child, e.g. 0.8 for "is_a" relation type and 0.6 for "part_of" relation type. In Sim_GOGO_2018, the weight is also scaled by the total number of children of that parent:
= 1/(c + nc) + w_0 w
where w_0 is the original contribution factor, nc
is the number of child terms of the parent, c
is calculated to ensure that
maximal value of w
is no larger than 1, i.e. c = max(w_0)/(1 - max(w_0))
, assuming minimal value of nc
is 1. By default Sim_GOGO_2018
sets contribution factor of 0.4 for "is_a" and 0.3 for "part_of", then w = 1/(2/3 + nc) + w_0
.
Paper link: doi:10.1038/s41598-018-33219-y .
The contribution of different semantic relations can be set with the contribution_factor
parameter. The value should be a named numeric
vector where names should cover the relations defined in relations
set in create_ontology_DAG()
. For example, if there are two relations
"relation_a" and "relation_b" set in the DAG, the value for contribution_factor
can be set as:
term_sim(dag, terms, method = "Sim_GOGO_2018",
control = list(contribution_factor = c("relation_a" = 0.4, "relation_b" = 0.3)))