[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/infer_phylogeny.R:66:15:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/infer_phylogeny.R#L66) *warning:* **no visible binding for global variable ‘beast2_options_output’**
```r
  file.remove(beast2_options_output$state_filename)
              ^~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L301) *style:* **functions should have cyclomatic complexity of less than 15, this has 19.**
```r
create_equal_alignment_tree <- function(input_tree,
^
```
[R/sim_unlinked_tree.R:303:41:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L303) *style:* **Variable and function name style should be snake_case.**
```r
                                        Q1 = NULL,
                                        ^~
```
[R/sim_unlinked_tree.R:304:41:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L304) *style:* **Variable and function name style should be snake_case.**
```r
                                        Q2 = NULL,
                                        ^~
```
[R/sim_unlinked_tree.R:318:5:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L318) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(focal_alignment)) {
    ^
```
[R/sim_unlinked_tree.R:320:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L320) *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:325:5:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L325) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(fraction) && is.null(node_time)) {
    ^
```
[R/sim_unlinked_tree.R:328:5:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L328) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(node_time)) {
    ^
```
[R/sim_unlinked_tree.R:329:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L329) *style:* **Lines should not be more than 80 characters.**
```r
    node_time <- nodeSub::calc_required_node_time(input_tree, s = fraction, model = model)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:331:5:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L331) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(fraction)) {
    ^
```
[R/sim_unlinked_tree.R:332:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L332) *style:* **Lines should not be more than 80 characters.**
```r
    fraction <- nodeSub::calc_fraction(input_tree, node_time = node_time, model = model)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:342:7:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L342) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(reconstruct_hidden_nodes) {
      ^
```
[R/sim_unlinked_tree.R:343:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L343) *style:* **Lines should not be more than 80 characters.**
```r
      if(model == "unlinked") proposed_alignment <- nodeSub::sim_unlinked_tree(input_tree,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:343:9:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L343) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(model == "unlinked") proposed_alignment <- nodeSub::sim_unlinked_tree(input_tree,
        ^
```
[R/sim_unlinked_tree.R:351:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L351) *style:* **Lines should not be more than 80 characters.**
```r
      if(model == "linked") stop("hidden nodes in linked model not implemented yet")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:351:9:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L351) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(model == "linked") stop("hidden nodes in linked model not implemented yet")
        ^
```
[R/sim_unlinked_tree.R:353:9:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L353) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(model == "unlinked") {
        ^
```
[R/sim_unlinked_tree.R:361:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L361) *style:* **Lines should not be more than 80 characters.**
```r
                                                            node_time = node_time)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:363:9:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L363) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(model == "linked") {
        ^
```
[R/sim_unlinked_tree.R:367:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L367) *style:* **Lines should not be more than 80 characters.**
```r
                                                       node_mut_rate_double = focal_rate ^ 2,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_unlinked_tree.R:382:1:](https://github.com/thijsjanzen/nodeSub/blob/d11ebf7e6069b76bafda0d79f9466716ed4fb113/R/sim_unlinked_tree.R#L382) *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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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/d11ebf7e6069b76bafda0d79f9466716ed4fb113/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)
  ^~
```


also used "withRouter" from react-router


@hagbard It looks to me like a `grpc` directory was meant to be included in this PR but was not, so I'm a bit lost as to this PR's purpose. Would you mind clarifying things for me?


Successfully deployed to following URLs:

* https://beauty-baza-app-v-jvfghbixo.now.sh
* https://beauty-baza-app-v.now.sh
* https://beauty-baza-app-v.olimpik12.now.sh
* https://beauty-baza-app-v-git-master.olimpik12.now.sh


thank you.


You should have a test here where a position requires two endorsements, but a user only has one and then the user has both of them to validate my above comment


verified.


ahh nope I just mis-read every as each


Successfully deployed to following URLs:

* https://flexblog-kbdjnlljk.now.sh
* https://flexblog-ten-swart.now.sh
* https://flexblog.keila.now.sh
* https://flexblog-git-master.keila.now.sh


Retour de test


Please drop this useless cast: parse_time() returns ogg_int64_t already


Ditto


yes but where is .bb?


    :x: Test Failed: va/tests/accessibility

composer va:test:accessibility

```
audited 183 packages in 1.645s
found 2 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

> axe_tests@1.0.0 test /var/aegir/projects/cms/pr793
> node ./tests/accessibility/aXeAccessibilityCheck.js

!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov 0
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/sections  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/page  = 1
[ { id: 'duplicate-id',
    impact: 'minor',
    tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],
    description: 'Ensures every id attribute value is unique',
    help: 'id attribute value must be unique',
    helpUrl:
     'https://dequeuniversity.com/rules/axe/3.3/duplicate-id?application=webdriverjs',
    nodes: [ [Object], [Object] ] } ]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/landing_page  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/documentation_page  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/event  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/health_care_local_facility  = 1
[ { id: 'label',
    impact: 'critical',
    tags:
     [ 'cat.forms',
       'wcag2a',
       'wcag332',
       'wcag131',
       'section508',
       'section508.22.n' ],
    description: 'Ensures every form element has a label',
    help: 'Form elements must have labels',
    helpUrl:
     'https://dequeuniversity.com/rules/axe/3.3/label?application=webdriverjs',
    nodes:
     [ [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object],
       [Object] ] } ]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/health_care_region_detail_page  = 1
[ { id: 'duplicate-id',
    impact: 'minor',
    tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],
    description: 'Ensures every id attribute value is unique',
    help: 'id attribute value must be unique',
    helpUrl:
     'https://dequeuniversity.com/rules/axe/3.3/duplicate-id?application=webdriverjs',
    nodes: [ [Object], [Object] ] } ]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/health_care_region_page  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/office  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/outreach_asset  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/person_profile  = 1
[ { id: 'duplicate-id-aria',
    impact: 'critical',
    tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],
    description:
     'Ensures every id attribute value used in ARIA and in labels is unique',
    help: 'IDs used in ARIA and labels must be unique',
    helpUrl:
     'https://dequeuniversity.com/rules/axe/3.3/duplicate-id-aria?application=webdriverjs',
    nodes: [ [Object] ] } ]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/press_release  = 1
[ { id: 'aria-allowed-attr',
    impact: 'critical',
    tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],
    description: 'Ensures ARIA attributes are allowed for an element\'s role',
    help: 'Elements must only use allowed ARIA attributes',
    helpUrl:
     'https://dequeuniversity.com/rules/axe/3.3/aria-allowed-attr?application=webdriverjs',
    nodes: [ [Object] ] } ]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/regional_health_care_service_des  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/news_story  = 0
[]
!!!  NUMBER OF NEW VIOLATIONS on http://pr793.ci.cms.va.gov/node/add/support_service  = 0
[]
!!!  VIOLATION TYPES FOUND: 5 PROCESS EXITED WITH CODE 1  !!!
> npm install --only=production
> npm test
Tue, 17 Dec 2019 18:17:12 GMT axe-webdriverjs deprecated Error must be handled as the first argument of axe.analyze. See: #83 at tests/accessibility/aXeAccessibilityCheck.js:44:14
Tue, 17 Dec 2019 18:17:15 GMT axe-webdriverjs deprecated Error must be handled as the first argument of axe.analyze. See: #83 at tests/accessibility/aXeAccessibilityCheck.js:56:42
Failed to inject axe-core into one of the iframes!
Failed to inject axe-core into one of the iframes!
npm ERR! Test failed.  See above for more details.
Script npm test handling the va:test:accessibility event returned with error code 1
```

- **On:** devshop.cms.va.gov
- **In:** 01:26


I think this is better off as a unit test - I'll write it over in the service test


Successfully deployed to following URLs:

* https://mukemmel-blog-kgnssfwur.now.sh
* https://mukemmel-blog.now.sh
* https://mukemmel-blog.ja1.now.sh
* https://mukemmel-blog-git-master.ja1.now.sh


Successfully deployed to following URLs:

* https://beauty-baza-app-v-34sqqmym3.now.sh
* https://beauty-baza-app-v.now.sh
* https://beauty-baza-app-v.olimpik12.now.sh
* https://beauty-baza-app-v-git-master.olimpik12.now.sh


Fbroot

horizontal: `float: left; margin-right: 10px; top: -4px; position: relative;`
vertical: `display: block; margin-bottom: 6px; margin-left: -5px;`


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


IBM Cloud [toolchain](https://cloud.ibm.com/devops/toolchains/96ef0e85-e3fa-483a-ba1e-42169e56f342?env_id=ibm%3Ayp%3Aus-south "devops-insights-20191217173812083"): [Delivery Pipeline](https://cloud.ibm.com/devops/pipelines/990c17f3-6061-45c1-b5d9-d53acf32d775 "devops-insights-20191217173812083") deployed [devops-insights-20191217173812083](https://github.com/biharicoder/devops-insights-20191217173812083/releases/tag/deploy-ibm-yp-us-south-Shivam.Raj.Solanki-ibm.com-dev-20191217-182106 "deploy-ibm-yp-us-south-Shivam.Raj.Solanki-ibm.com-dev-20191217-182106") to [dev](https://console.bluemix.net/apps/88b04614-2918-4883-a6cb-79f72fc7ba05?env_id=ibm:yp:us-south "ibm:yp:us-south:Shivam.Raj.Solanki@ibm.com:dev"), including this commit


Successfully deployed to following URLs:

* https://kauri-serverless-migration-7unpvkt6c.now.sh
* https://kauri-serverless-migration-omega-ten.now.sh
* https://dev.kauri.io
* https://kauri-serverless-migration.kauri.now.sh
* https://kauri-serverless-migration-git-development.kauri.now.sh


We have sell some products of different custom boxes.it is very useful and very low price please visits this site thanks and please share this post with your friends.	buy weed online USA


Successfully deployed to following URLs:

* https://mcs-new-version-qxpwg0z6d.now.sh
* https://moscoding.ru
* https://www.moscoding.ru
* https://mcs-new-version.m-c-s.now.sh
* https://mcs-new-version-git-master.m-c-s.now.sh


This is NOT that parse_time you thought:
https://github.com/WohlSoft/SDL-Mixer-X/blob/master/src/utils.h#L40
I moved it into utils.h/utils.c to share it between FLAC and OPUS. I preferred to return unsigned as it's needed for FLAC and for OGG and OPUS I casting this into signed. The oldies you see now here are disabled with `#if 0/#endif`.


Successfully deployed to following URLs:

* https://mukemmel-blog-lqi46mh6p.now.sh
* https://mukemmel-blog.now.sh
* https://mukemmel-blog.ja1.now.sh
* https://mukemmel-blog-git-master.ja1.now.sh


good variable renaming


logically redundant but harmless and good clarification


Not very interested but thanks


it's not there anymore, correct import is from base64 module I think; strange that tests didn't catch it


good


approved


good initial caps


Sorry, should have said that this is when viewing a poll to vote on. No login is required.

If I can help in any way, let me know!


I see, sorry.
(Why did you change it to return unsigned, btw?)


What poll ? link ?


Successfully deployed to following URLs:

* https://project-management-tool-nxqovgx9s.now.sh
* https://project-management-tool.now.sh
* https://project-management-tool.webistomin.now.sh
* https://project-management-tool-git-master.webistomin.now.sh


@twa127
thank you for pointing out, it was mistake on my end. fixed now,


Looks about right, so I'm fine :)


Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post.	buy weed online USA


Successfully deployed to following URLs:

* https://mcs-new-version-ki0kvxogi.now.sh
* https://moscoding.ru
* https://www.moscoding.ru
* https://mcs-new-version.m-c-s.now.sh
* https://mcs-new-version-git-master.m-c-s.now.sh


bro


Why unsigned? Because it's critically for FLAC which does use of unsigned.


no migration required:
node='study'
data = exp.get_node_tsvs(node=node)
prop='study_design'
list(set(data.loc[data[prop].notnull()][prop]))
['Research/Early Development', 'Clinical']


Created multidev environment [sfgov#ci-3804](https://dashboard.pantheon.io/sites/91d50373-c4cf-40e4-a646-cb73e16a140c#ci-3804).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-3804-sfgov.pantheonsite.io/)


context: https://twitter.com/motiz88/status/1206901162798133248


@siwelwerd both scripts now accept a second argument to change the default build folder from `build/_CLASS_/_STANDARD_` to `_CUSTOM_/_STANDARD`.


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


public static double calculateTotalPrice (Map<String, Double> mapMenu, Map<String, Integer> mapOrder) {
		double moneyTotal = 0;
		for (Map.Entry<String, Integer> entry : mapOrder.entrySet()) {
			if (mapMenu.containsKey(entry.getKey())) {
				moneyTotal += mapMenu.get(entry.getKey()) * mapOrder.get(entry.getKey());
			} else {

			}
		}
		return moneyTotal;
}


Lighthouse scores

Tested url: https://vigilant-pare-6101d0.netlify.com/

Best scores across 3 parallel runs:

✅ performance: 99/97

✅ accessibility: 94/92

✅ best-practices: 100/93

✅ seo: 100/92

Detailed reports: run 1, run 2, run 3


Crash on empty tree? :)


Any hints?