[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_rel_contr_node_time.R#L61) *style:* **Lines should not be more than 80 characters.**
```r
                                   ((1 - s) * (    num_nodes + num_hidden_nodes))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:61:48:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_rel_contr_node_time.R#L61) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
                                   ((1 - s) * (    num_nodes + num_hidden_nodes))
                                               ^
```
[R/calc_rel_contr_node_time.R:63:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_rel_contr_node_time.R#L63) *style:* **Lines should not be more than 80 characters.**
```r
                                   ((1 - s) * (2 * num_nodes + num_hidden_nodes))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:75:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_rel_contr_node_time.R#L75) *style:* **Variable and function names should not be longer than 30 characters.**
```r
calc_expected_hidden_nodes_per_branch <- function(bl, lambda, mu) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:125:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_rel_contr_node_time.R#L125) *style:* **Variable and function names should not be longer than 30 characters.**
```r
  calc_expected_hidden_nodes_per_dt <- function(t, lambda, mu) {
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_summary_statistics.R:64:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_summary_statistics.R#L64) *style:* **Lines should not be more than 80 characters.**
```r
    # this is rather inefficient off course, RPANDA can do all pairwise comparisons?
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_summary_statistics.R:65:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_summary_statistics.R#L65) *style:* **Lines should not be more than 80 characters.**
```r
    local_jsd <- tryCatch(RPANDA::JSDtree(list(true_tree, trees[[i]]), meth = "standard")[1,2],
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_summary_statistics.R:65:93:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_summary_statistics.R#L65) *style:* **Commas should always have a space after.**
```r
    local_jsd <- tryCatch(RPANDA::JSDtree(list(true_tree, trees[[i]]), meth = "standard")[1,2],
                                                                                ^
```
[R/calc_summary_statistics.R:79:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/calc_summary_statistics.R#L79) *style:* **Lines should not be more than 80 characters.**
```r
                                 "mean_branch_length", "nLTT", "jsd", "topo_dist")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/count_hidden.R:7:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/count_hidden.R#L7) *style:* **functions should have cyclomatic complexity of less than 15, this has 16.**
```r
reduce_tree <- function(tree) {
^
```
[R/create_equal_alignment.R:4:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/create_equal_alignment.R#L4) *style:* **Lines should not be more than 80 characters.**
```r
#' @param node_model model used to generate substitutions on the nodes (linked or unlinked)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/create_equal_alignment.R:14:23:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/create_equal_alignment.R#L14) *warning:* **no visible global function definition for ‘count_hidden’**
```r
  num_hidden_nodes <- count_hidden(input_tree)
                      ^~~~~~~~~~~~
```
[R/infer_phylogeny.R:8:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/infer_phylogeny.R#L8) *style:* **Lines should not be more than 80 characters.**
```r
#' @param sub_rate substitution rate used to generate the original alignment (if available), default is 1
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/infer_phylogeny.R:32:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/infer_phylogeny.R#L32) *style:* **Lines should not be more than 80 characters.**
```r
          clock_rate_param = beautier::create_clock_rate_param(value = sub_rate),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L1) *style:* **Lines should not be more than 80 characters.**
```r
#' simulate a sequence assuming node substitutions are shared among the offspring
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:13:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L13) *style:* **functions should have cyclomatic complexity of less than 15, this has 23.**
```r
sim_dual_independent <- function(phy,
^
```
[R/sim_dual_independent.R:14:34:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L14) *style:* **Variable and function name style should be snake_case.**
```r
                                 Q1 = NULL,
                                 ^~
```
[R/sim_dual_independent.R:15:34:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L15) *style:* **Variable and function name style should be snake_case.**
```r
                                 Q2 = NULL,
                                 ^~
```
[R/sim_dual_independent.R:37:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L37) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q1)) Q1 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_dual_independent.R:38:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L38) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q2)) Q2 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_dual_independent.R:41:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L41) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q1)) Q1 <- Q1[lower.tri(Q1)]
                     ^~
```
[R/sim_dual_independent.R:42:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L42) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q2)) Q2 <- Q2[lower.tri(Q2)]
                     ^~
```
[R/sim_dual_independent.R:69:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L69) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number > length(phy$tip.label)) return(TRUE)
      ^
```
[R/sim_dual_independent.R:70:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L70) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number <= length(phy_no_extinct$tip.label)) return(TRUE)
      ^
```
[R/sim_dual_independent.R:79:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L79) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(node_time, eig_q2, rate2)
    ^
```
[R/sim_dual_independent.R:80:6:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L80) *style:* **Commented code should be removed.**
```r
   # P <- nodeSub::slow_matrix(eig_q2, node_time, rate2)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:92:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L92) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(tl[i], eig_q1, rate1)
    ^
```
[R/sim_dual_independent.R:93:6:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L93) *style:* **Commented code should be removed.**
```r
    #P <- nodeSub::slow_matrix(eig_q1, tl[i], rate1)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:105:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L105) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(check_to_extinct_tip(to)) {
      ^
```
[R/sim_dual_independent.R:114:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L114) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_dual_independent.R:117:34:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_independent.R#L117) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  alignment_phydat <- phyDat.DNA( as.data.frame(res, stringsAsFactors = FALSE))
                                 ^
```
[R/sim_dual_linked.R:35:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L35) *style:* **functions should have cyclomatic complexity of less than 15, this has 17.**
```r
make_transition_matrix <- function(mut_double) {
^
```
[R/sim_dual_linked.R:111:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L111) *style:* **functions should have cyclomatic complexity of less than 15, this has 23.**
```r
sim_dual_linked <- function(phy,
^
```
[R/sim_dual_linked.R:112:29:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L112) *style:* **Variable and function name style should be snake_case.**
```r
                            Q = NULL,
                            ^
```
[R/sim_dual_linked.R:132:19:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L132) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q)) Q <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                  ^
```
[R/sim_dual_linked.R:135:21:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L135) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q)) Q <- Q[lower.tri(Q)]
                    ^
```
[R/sim_dual_linked.R:171:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L171) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number > length(phy$tip.label)) return(TRUE)
      ^
```
[R/sim_dual_linked.R:172:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L172) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number <= length(phy_no_extinct$tip.label)) return(TRUE)
      ^
```
[R/sim_dual_linked.R:191:6:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L191) *style:* **Commented code should be removed.**
```r
   # total_node_subs <- total_node_subs + node_subs_1 + node_subs_2
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_linked.R:196:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L196) *style:* **Variable and function name style should be snake_case.**
```r
      P <- get_p_matrix(branch_length, eig_q, rate)
      ^
```
[R/sim_dual_linked.R:210:9:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L210) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(check_to_extinct_tip(offspring[i])) {
        ^
```
[R/sim_dual_linked.R:220:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_linked.R#L220) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_dual_parent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L1) *style:* **Lines should not be more than 80 characters.**
```r
#' simulate a sequence assuming node substitutions are shared among the offspring
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_parent.R:13:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L13) *style:* **functions should have cyclomatic complexity of less than 15, this has 18.**
```r
sim_dual_parent <- function(phy,
^
```
[R/sim_dual_parent.R:14:27:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L14) *style:* **Variable and function name style should be snake_case.**
```r
                          Q1 = NULL,
                          ^~
```
[R/sim_dual_parent.R:15:27:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L15) *style:* **Variable and function name style should be snake_case.**
```r
                          Q2 = NULL,
                          ^~
```
[R/sim_dual_parent.R:29:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L29) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q1)) Q1 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_dual_parent.R:30:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L30) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q2)) Q2 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_dual_parent.R:33:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L33) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q1)) Q1 <- Q1[lower.tri(Q1)]
                     ^~
```
[R/sim_dual_parent.R:34:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L34) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q2)) Q2 <- Q2[lower.tri(Q2)]
                     ^~
```
[R/sim_dual_parent.R:64:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L64) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(node_time, eig_q2, rate2)
    ^
```
[R/sim_dual_parent.R:86:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L86) *style:* **Variable and function name style should be snake_case.**
```r
      P <- get_p_matrix(branch_length, eig_q1, rate1)
      ^
```
[R/sim_dual_parent.R:105:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_dual_parent.R#L105) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_linked.R:12:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L12) *style:* **functions should have cyclomatic complexity of less than 15, this has 16.**
```r
sim_linked <- function(phy,
^
```
[R/sim_linked.R:13:24:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L13) *style:* **Variable and function name style should be snake_case.**
```r
                       Q = NULL,
                       ^
```
[R/sim_linked.R:33:19:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L33) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q)) Q <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                  ^
```
[R/sim_linked.R:36:21:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L36) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q)) Q <- Q[lower.tri(Q)]
                    ^
```
[R/sim_linked.R:88:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L88) *style:* **Variable and function name style should be snake_case.**
```r
      P <- get_p_matrix(branch_length, eig_q, rate)
      ^
```
[R/sim_linked.R:108:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_linked.R#L108) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_normal.R:31:24:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_normal.R#L31) *style:* **Variable and function name style should be snake_case.**
```r
                       Q = NULL,
                       ^
```
[R/sim_normal.R:43:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_normal.R#L43) *style:* **Variable and function name style should be snake_case.**
```r
    Q <- rep(1, lbf * (lbf - 1) / 2)
    ^
```
[R/sim_normal.R:45:21:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_normal.R#L45) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q)) Q <- Q[lower.tri(Q)]
                    ^
```
[R/sim_normal.R:67:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_normal.R#L67) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(tl[i], eig, rate)
    ^
```
[R/sim_normal.R:81:40:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_normal.R#L81) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(x$tip.label, as.character( (k + 1):num_nodes))
                                       ^
```
[R/sim_unlinked_tree.R:10:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L10) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(class(phy) != "phylo") {
    ^
```
[R/sim_unlinked_tree.R:34:51:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L34) *style:* **Put spaces around all infix operators.**
```r
      to_add <- c(start_node, end_node, t0, t1, t0-t1)
                                                 ~^~
```
[R/sim_unlinked_tree.R:40:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L40) *style:* **Variable and function names should not be longer than 30 characters.**
```r
  calc_expected_hidden_nodes_per_dt <- function(t, lambda, mu) {
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:50:35:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L50) *style:* **Commas should always have a space after.**
```r
                  apply(branches[,c(3,4)], 1,
                                  ^
```
[R/sim_unlinked_tree.R:50:39:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L50) *style:* **Commas should always have a space after.**
```r
                  apply(branches[,c(3,4)], 1,
                                      ^
```
[R/sim_unlinked_tree.R:52:36:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L52) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
                        lambda, mu) )
                                   ^
```
[R/sim_unlinked_tree.R:63:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L63) *style:* **Lines should not be more than 80 characters.**
```r
#' simulate a sequence assuming node substitutions are shared among the offspring
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:77:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L77) *style:* **functions should have cyclomatic complexity of less than 15, this has 43.**
```r
sim_unlinked_tree <- function(phy,
^
```
[R/sim_unlinked_tree.R:78:31:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L78) *style:* **Variable and function name style should be snake_case.**
```r
                              Q1 = NULL,
                              ^~
```
[R/sim_unlinked_tree.R:79:31:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L79) *style:* **Variable and function name style should be snake_case.**
```r
                              Q2 = NULL,
                              ^~
```
[R/sim_unlinked_tree.R:104:10:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L104) *style:* **Only use double-quotes.**
```r
    stop('lambda and mu have to be provided')
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:113:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L113) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q1)) Q1 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_unlinked_tree.R:114:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L114) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q2)) Q2 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_unlinked_tree.R:117:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L117) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q1)) Q1 <- Q1[lower.tri(Q1)]
                     ^~
```
[R/sim_unlinked_tree.R:118:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L118) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q2)) Q2 <- Q2[lower.tri(Q2)]
                     ^~
```
[R/sim_unlinked_tree.R:131:51:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L131) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  hidden_nodes <- add_hidden_nodes(phy, lambda, mu )
                                                  ^
```
[R/sim_unlinked_tree.R:146:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L146) *style:* **Lines should not be more than 80 characters.**
```r
  P_n <- nodeSub::slow_matrix(eig_q2, node_time, rate2)    #get_p_matrix(node_time, eig_q2, rate2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:146:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L146) *style:* **Variable and function name style should be snake_case.**
```r
  P_n <- nodeSub::slow_matrix(eig_q2, node_time, rate2)    #get_p_matrix(node_time, eig_q2, rate2)
  ^~~
```
[R/sim_unlinked_tree.R:146:61:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L146) *style:* **Commented code should be removed.**
```r
  P_n <- nodeSub::slow_matrix(eig_q2, node_time, rate2)    #get_p_matrix(node_time, eig_q2, rate2)
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:151:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L151) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number > length(phy$tip.label)) return(TRUE)
      ^
```
[R/sim_unlinked_tree.R:152:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L152) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(number <= length(phy_no_extinct$tip.label)) return(TRUE)
      ^
```
[R/sim_unlinked_tree.R:181:9:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L181) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
    if ( obs_hidden_nodes[i] > 0) {
        ^
```
[R/sim_unlinked_tree.R:186:10:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L186) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      for(j in 1:obs_hidden_nodes[i]) {
         ^
```
[R/sim_unlinked_tree.R:188:14:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L188) *style:* **Place a space before left parenthesis, except in a function call.**
```r
        while(focal_t + dt >= total_bl) {
             ^
```
[R/sim_unlinked_tree.R:198:8:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L198) *style:* **Commented code should be removed.**
```r
      #P_b <- get_p_matrix(bl[1], eig_q1, rate1)
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:199:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L199) *style:* **Variable and function name style should be snake_case.**
```r
      P_b <-  nodeSub::slow_matrix(eig_q1, bl[1], rate1)
      ^~~
```
[R/sim_unlinked_tree.R:214:10:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L214) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      for(h in 1:obs_hidden_nodes[i]) {
         ^
```
[R/sim_unlinked_tree.R:227:10:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L227) *style:* **Commented code should be removed.**
```r
        #P_b <- get_p_matrix(bl[1], eig_q1, rate1)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:228:9:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L228) *style:* **Variable and function name style should be snake_case.**
```r
        P_b <-  nodeSub::slow_matrix(eig_q1, bl[1], rate1)
        ^~~
```
[R/sim_unlinked_tree.R:247:8:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L247) *style:* **Commented code should be removed.**
```r
      #P <- get_p_matrix(tl[i], eig_q1, rate1)
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:248:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L248) *style:* **Variable and function name style should be snake_case.**
```r
      P <-  nodeSub::slow_matrix(eig_q1, tl[i], rate1)
      ^
```
[R/sim_unlinked_tree.R:263:7:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L263) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(check_to_extinct_tip(to)) {
      ^
```
[R/sim_unlinked_tree.R:270:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L270) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_unlinked_tree.R:273:34:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L273) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  alignment_phydat <- phyDat.DNA( as.data.frame(res, stringsAsFactors = FALSE))
                                 ^
```
[R/sim_unlinked_tree.R:282:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L282) *style:* **Lines should not be more than 80 characters.**
```r
#' simulate a sequence assuming node substitutions are shared among the offspring
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:301:40:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L301) *style:* **Variable and function name style should be snake_case.**
```r
                                       Q1 = NULL,
                                       ^~
```
[R/sim_unlinked_tree.R:302:40:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L302) *style:* **Variable and function name style should be snake_case.**
```r
                                       Q2 = NULL,
                                       ^~
```
[R/sim_unlinked_tree.R:313:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L313) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(length(geiger::is.extinct(input_tree)) > 0) {
    ^
```
[R/sim_unlinked_tree.R:320:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L320) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(focal_alignment)) {
    ^
```
[R/sim_unlinked_tree.R:322:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L322) *style:* **Lines should not be more than 80 characters.**
```r
    focal_alignment <- nodeSub::sim_normal(input_tree, l = l, Q = Q1, bf = bf, rootseq = rootseq, rate = rate1)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:336:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L336) *style:* **Lines should not be more than 80 characters.**
```r
    proposed_alignment <- nodeSub::sim_unlinked_tree(input_tree, Q1 = Q1, Q2 = Q2,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:337:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L337) *style:* **Lines should not be more than 80 characters.**
```r
                                                     rate1 = focal_rate, rate2 = focal_rate, l = l, bf = bf, rootseq = rootseq,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:338:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L338) *style:* **Lines should not be more than 80 characters.**
```r
                                                     node_time = node_time, lambda = lambda, mu = mu)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:347:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked_tree.R#L347) *style:* **Lines should not be more than 80 characters.**
```r
  proposed_alignment <- propose_alignments(buffer = c(), focal_rate = adjusted_rate)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L1) *style:* **Lines should not be more than 80 characters.**
```r
#' simulate a sequence assuming node substitutions are shared among the offspring
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked.R:13:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L13) *style:* **functions should have cyclomatic complexity of less than 15, this has 18.**
```r
sim_unlinked <- function(phy,
^
```
[R/sim_unlinked.R:14:26:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L14) *style:* **Variable and function name style should be snake_case.**
```r
                         Q1 = NULL,
                         ^~
```
[R/sim_unlinked.R:15:26:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L15) *style:* **Variable and function name style should be snake_case.**
```r
                         Q2 = NULL,
                         ^~
```
[R/sim_unlinked.R:37:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L37) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q1)) Q1 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_unlinked.R:38:20:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L38) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.null(Q2)) Q2 <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
                   ^~
```
[R/sim_unlinked.R:41:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L41) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q1)) Q1 <- Q1[lower.tri(Q1)]
                     ^~
```
[R/sim_unlinked.R:42:22:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L42) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q2)) Q2 <- Q2[lower.tri(Q2)]
                     ^~
```
[R/sim_unlinked.R:71:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L71) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(node_time, eig_q2, rate2)
    ^
```
[R/sim_unlinked.R:84:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L84) *style:* **Variable and function name style should be snake_case.**
```r
    P <- get_p_matrix(tl[i], eig_q1, rate1)
    ^
```
[R/sim_unlinked.R:104:42:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L104) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  label <- c(phy$tip.label, as.character( (k + 1):num_nodes))
                                         ^
```
[R/sim_unlinked.R:107:34:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/sim_unlinked.R#L107) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  alignment_phydat <- phyDat.DNA( as.data.frame(res, stringsAsFactors = FALSE))
                                 ^
```
[R/util.R:2:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/util.R#L2) *style:* **Variable and function name style should be snake_case.**
```r
fast.table <- function(data) {
^~~~~~~~~~
```
[R/util.R:20:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/util.R#L20) *style:* **Variable and function name style should be snake_case.**
```r
phyDat.DNA <- function(data) {
^~~~~~~~~~
```
[R/util.R:35:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/util.R#L35) *style:* **Variable and function name style should be snake_case.**
```r
  AC <- matrix(c(c(1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1),
  ^~
```
[R/util.R:108:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/util.R#L108) *style:* **functions should have cyclomatic complexity of less than 15, this has 23.**
```r
slow_matrix <- function(eig, branch_length, rate) {
^
```
[R/util.R:116:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/R/util.R#L116) *style:* **Variable and function name style should be snake_case.**
```r
  P <- matrix(NA, nrow = dim_size, ncol = dim_size)
  ^
```
[tests/testthat/test-dual_independent.R:10:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-dual_independent.R#L10) *style:* **Variable and function name style should be snake_case.**
```r
  Q_JC <- matrix(1, nrow = 4, ncol = 4)
  ^~~~
```
[tests/testthat/test-dual_parent.R:9:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-dual_parent.R#L9) *style:* **Variable and function name style should be snake_case.**
```r
  Q_JC <- matrix(1, nrow = 4, ncol = 4)
  ^~~~
```
[tests/testthat/test-dual-linked.R:9:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-dual-linked.R#L9) *style:* **Variable and function name style should be snake_case.**
```r
  Q_JC <- matrix(1, nrow = 4, ncol = 4)
  ^~~~
```
[tests/testthat/test-relative_node_time.R:22:1:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-relative_node_time.R#L22) *style:* **Lines should not be more than 80 characters.**
```r
  obs_fraction <- ali$total_node_substitutions / (ali$total_node_substitutions + ali$total_branch_substitutions)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-sim_normal.R:20:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-sim_normal.R#L20) *style:* **Variable and function name style should be snake_case.**
```r
  Q_JC <- matrix(1, nrow = 4, ncol = 4)
  ^~~~
```
[tests/testthat/test-substitution.R:10:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L10) *style:* **Variable and function name style should be snake_case.**
```r
  Q <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
  ^
```
[tests/testthat/test-substitution.R:13:21:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L13) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q)) Q <- Q[lower.tri(Q)]
                    ^
```
[tests/testthat/test-substitution.R:29:5:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L29) *style:* **Variable and function name style should be snake_case.**
```r
    P <- nodeSub::slow_matrix(eig = eig_q,
    ^
```
[tests/testthat/test-substitution.R:84:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L84) *style:* **Variable and function name style should be snake_case.**
```r
  Q <- rep(1, lbf * (lbf - 1) / 2) # default is JC69
  ^
```
[tests/testthat/test-substitution.R:87:21:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L87) *style:* **Variable and function name style should be snake_case.**
```r
  if (is.matrix(Q)) Q <- Q[lower.tri(Q)]
                    ^
```
[tests/testthat/test-substitution.R:94:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L94) *style:* **Variable and function name style should be snake_case.**
```r
  P1 <- nodeSub::slow_matrix(eig = eig_q,
  ^~
```
[tests/testthat/test-substitution.R:98:3:](https://github.com/thijsjanzen/nodeSub/blob/8dad26e6c7b340d175be9acfecba586aa584e011/tests/testthat/test-substitution.R#L98) *style:* **Variable and function name style should be snake_case.**
```r
  P2 <- get_p_matrix(branch_length, eig_q, rate)
  ^~
```


You can if you like. Note that i’m throwing an IOException which is specific. you could make your own if you like although i’m not sure what value it gives?


Deploy preview for _website_ ready!

Built with commit 856adb7658ba3b6137943545565fd78f8ad20de7

https://shopware-pwa-8xtk2n9pg.now.sh


Successfully deployed to following URLs:

* https://mdx-jx52y4718.now.sh
* https://mdxjs.com
* https://mdx.mdx.now.sh
* https://mdx-git-master.mdx.now.sh


This leads to an error on my side:
Subscripted assignment dimension mismatch.

Error in ea_genvat_horn>jr_remove_electrode (line 706)
r_pos(:,r_pos(2,:)>0) = cr_pos;

Error in ea_genvat_horn (line 355)
vat = jr_remove_electrode(vat,elstruct,mesh,side,elspec);


ok


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 3c598c23085450a6065880b84761c1bdc8b8bf90.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


Test one


Successfully deployed to following URLs:

* https://mdx-d5vcbq00b.now.sh
* https://mdxjs.com
* https://mdx.mdx.now.sh
* https://mdx-git-master.mdx.now.sh


You are welcome :)


TeamCity Identity and Access Management / Identity - .NET Standard 2.0 Nuget (SDK) [Build 355-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63205&buildTypeId=IdentityandAccessManagement_IdentityAuthenticationSdk) outcome was **SUCCESS**
Summary: Running Build time: 00:00:42


Successfully deployed to following URLs:

* https://useisinviewport-q6d3cl0er.now.sh
* https://useisinviewport.zdx.cat
* https://useisinviewport.zdx.now.sh
* https://useisinviewport-git-master.zdx.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit 9d666a9f703f20064c42c6e6626a779a6dfa45d7.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


TeamCity Identity and Access Management / Identity - .NET Standard 2.0 Nuget (SDK) [Build 356-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63206&buildTypeId=IdentityandAccessManagement_IdentityAuthenticationSdk) outcome was **FAILURE**
Summary:
       "/etc/teamcity/work/44fd104bdf8e4cf7/NICE.Identity.Authentication.Sdk/NICE.Identity.Authentication.Sdk.csproj" (default target) (1) ->
       (GenerateNuspec target) ->
         /usr/share/dotnet/sdk/3.1.100/Sdks/NuGet.Build.Tasks.Pack/buildC... Build time: 00:00:35


Successfully deployed to following URLs:

* https://elearnfrontend-d5d4j83yk.now.sh
* https://elearnfrontend.now.sh
* https://elearnfrontend.chibuzorojukwu.now.sh
* https://elearnfrontend-git-master.chibuzorojukwu.now.sh


You are pushing commits at a very fast pace (across the whole organization).
Due to that, we cannot deploy the commit cd76135ecf7893877336eb51737bd403e65695b9.

You can try again later or [upgrade](https://zeit.co/account/plan) your plan.


TeamCity Identity and Access Management / Identity - RoleManagementAPI [Build 658-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63207&buildTypeId=IdentityandAccessManagement_RoleManagementAPI) outcome was **FAILURE**
Summary: Tests failed: 57 (57 new), passed: 0; unable to create or deploy release. Please check the build log for details on the error. (new) Build time: 00:01:06
### Failed tests
```
Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Delete_single_user_with_userId: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Update_user_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Get_roles_for_user: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Update_user_that_already_exists: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Get_users: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Find_roles: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Update_roles_for_user: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Find_users: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Create_user_where_user_email_exists_but_name_identifier_is_different_creates_new_user_record: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Get_roles_for_user_by_website: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Import_users: <no details avaliable>

##### there are 47 more failed tests, see build details
```


Ahaha nice to meet you @Tam-Pham! Hope this will help!


TeamCity Identity and Access Management / Identity - RoleManagementAPI [Build 659-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63208&buildTypeId=IdentityandAccessManagement_RoleManagementAPI) outcome was **FAILURE**
Summary: Tests failed: 57, passed: 0; unable to create or deploy release. Please check the build log for details on the error. Build time: 00:00:58
### Failed tests
```
Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Get_environments: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Get_environment: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Update_environment: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Create_environment: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Get_environment_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Delete_environment: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Update_environment_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.EnvironmentsServiceTests.Delete_environment_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests.Get_website: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests.Update_website_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.WebsitesServiceTests.Update_website_partial: <no details avaliable>

##### there are 47 more failed tests, see build details
```


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @claymcleod was added to conda-forge. Welcome to conda-forge!
  Go to https://github.com/orgs/conda-forge/invitation see your invitation.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/maintainer/updating_pkgs.html#forking-and-pull-requests)


Successfully deployed to following URLs:

* https://nikoheikkilafi-fyl6wrwln.now.sh
* https://nikoheikkila.fi
* https://www.nikoheikkila.fi
* https://nikoheikkilafi.njh.now.sh
* https://nikoheikkilafi-git-master.njh.now.sh


deleting


TeamCity Identity and Access Management / Identity - RoleManagementAPI [Build 660-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63209&buildTypeId=IdentityandAccessManagement_RoleManagementAPI) outcome was **FAILURE**
Summary: Tests failed: 57, passed: 0; unable to create or deploy release. Please check the build log for details on the error. Build time: 00:01:05
### Failed tests
```
Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Delete_service_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Update_service_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Get_service_with_website_and_environment: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Update_service: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Get_services: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Get_service: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Delete_service: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Create_service: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.ServicesServiceTests.Get_service_that_does_not_exist: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Delete_single_user_with_userId: <no details avaliable>

Test collection for NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests (1): NICE.Identity.Test.UnitTests.Authorisation.WebAPI.Services.UserServiceTests.Update_user_that_does_not_exist: <no details avaliable>

##### there are 47 more failed tests, see build details
```


TeamCity Identity and Access Management / Identity - .NET Standard 2.0 Nuget (SDK) [Build 357-r1412A3D](https://teamcity.nice.org.uk/viewLog.html?buildId=63211&buildTypeId=IdentityandAccessManagement_IdentityAuthenticationSdk) outcome was **SUCCESS**
Summary: Running Build time: 00:00:33


Whoops, massive typo in commit name.  Should be `Fix rotation example`...


TeamCity Identity and Access Management / Identity - .NET Standard 2.0 Nuget (SDK) [Build 358-r2CECF3F](https://teamcity.nice.org.uk/viewLog.html?buildId=63212&buildTypeId=IdentityandAccessManagement_IdentityAuthenticationSdk) outcome was **SUCCESS**
Summary: Running Build time: 00:01:15


It had better use GetOriginalType().


remove


Aha!  Good catch!


TeamCity Identity and Access Management / Identity - .NET Standard 2.0 Nuget (SDK) [Build 359-IDAM-121-DotNetCoreU](https://teamcity.nice.org.uk/viewLog.html?buildId=63213&buildTypeId=IdentityandAccessManagement_IdentityAuthenticationSdk) outcome was **FAILURE**
Summary:
       "/etc/teamcity/work/44fd104bdf8e4cf7/NICE.Identity.Authentication.Sdk/NICE.Identity.Authentication.Sdk.csproj" (default target) (1) ->
       (GenerateNuspec target) ->
         /usr/share/dotnet/sdk/3.1.100/Sdks/NuGet.Build.Tasks.Pack/buildC... Build time: 00:00:32


TeamCity Identity and Access Management / Identity - RoleManagementAPI [Build 661-r2CECF3F](https://teamcity.nice.org.uk/viewLog.html?buildId=63210&buildTypeId=IdentityandAccessManagement_RoleManagementAPI) outcome was **SUCCESS**
Summary: Tests passed: 57 Build time: 00:01:19


Successfully deployed to following URLs:

* https://business-administration-aehpyqcxv.now.sh
* https://business-administration.now.sh
* https://business-administration.dreamineering.now.sh
* https://business-administration-git-master.dreamineering.now.sh


NIT: Usually we use public modificator instead default)


Successfully deployed to following URLs:

* https://elearnfrontend-j4sqycrw2.now.sh
* https://elearnfrontend.now.sh
* https://elearnfrontend.chibuzorojukwu.now.sh
* https://elearnfrontend-git-master.chibuzorojukwu.now.sh