[R/calc_rel_contr_node_time.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L1) *style:* **Lines should not be more than 80 characters.**
```r
#' calculate the expected fraction of substitutions at the nodes, relative to the fraction
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:3:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L3) *style:* **Lines should not be more than 80 characters.**
```r
#' @description calculates the relative contribution of substitutions at the nodes
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:16:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L16) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(phy) || class(phy) != "phylo") {
    ^
```
[R/calc_rel_contr_node_time.R:26:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L26) *style:* **Lines should not be more than 80 characters.**
```r
  if(model == "linked")   num_node_subs <-     (num_nodes + num_hidden_nodes) * node_time
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:26:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L26) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(model == "linked")   num_node_subs <-     (num_nodes + num_hidden_nodes) * node_time
    ^
```
[R/calc_rel_contr_node_time.R:27:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L27) *style:* **Lines should not be more than 80 characters.**
```r
  if(model == "unlinked") num_node_subs <- (2 * num_nodes + num_hidden_nodes) * node_time
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:27:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L27) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(model == "unlinked") num_node_subs <- (2 * num_nodes + num_hidden_nodes) * node_time
    ^
```
[R/calc_rel_contr_node_time.R:34:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L34) *style:* **Lines should not be more than 80 characters.**
```r
#' calculate the required node time to obtain a desired fraction of substitions at the node
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:35:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L35) *style:* **Lines should not be more than 80 characters.**
```r
#' @description calculates the required node time to obtain a desired fraction of susbstitutions at the node
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:45:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L45) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(phy) || class(phy) != "phylo") {
    ^
```
[R/calc_rel_contr_node_time.R:55:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L55) *style:* **Lines should not be more than 80 characters.**
```r
  if(model == "linked")   node_time <- (s * total_bl) / ((1-s) * (    num_nodes + num_hidden_nodes))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:55:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L55) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(model == "linked")   node_time <- (s * total_bl) / ((1-s) * (    num_nodes + num_hidden_nodes))
    ^
```
[R/calc_rel_contr_node_time.R:55:60:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L55) *style:* **Put spaces around all infix operators.**
```r
  if(model == "linked")   node_time <- (s * total_bl) / ((1-s) * (    num_nodes + num_hidden_nodes))
                                                          ~^~
```
[R/calc_rel_contr_node_time.R:55:67:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L55) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  if(model == "linked")   node_time <- (s * total_bl) / ((1-s) * (    num_nodes + num_hidden_nodes))
                                                                  ^
```
[R/calc_rel_contr_node_time.R:56:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L56) *style:* **Lines should not be more than 80 characters.**
```r
  if(model == "unlinked") node_time <- (s * total_bl) / ((1-s) * (2 * num_nodes + num_hidden_nodes))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:56:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L56) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(model == "unlinked") node_time <- (s * total_bl) / ((1-s) * (2 * num_nodes + num_hidden_nodes))
    ^
```
[R/calc_rel_contr_node_time.R:56:60:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L56) *style:* **Put spaces around all infix operators.**
```r
  if(model == "unlinked") node_time <- (s * total_bl) / ((1-s) * (2 * num_nodes + num_hidden_nodes))
                                                          ~^~
```
[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L61) *style:* **Lines should not be more than 80 characters.**
```r
#' @description calculate the number of expected hidden nodes by integrating over equation 1 in Maceau et al. 2019
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:67:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L67) *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:68:6:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L68) *style:* **Use <-, not =, for assignment.**
```r
  t0 = bl
     ^
```
[R/calc_rel_contr_node_time.R:69:6:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L69) *style:* **Use <-, not =, for assignment.**
```r
  t1 = 0
     ^
```
[R/calc_rel_contr_node_time.R:70:13:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L70) *style:* **Use <-, not =, for assignment.**
```r
  numerator = 1 - lambda/(mu) * exp((lambda-mu) * t0)
            ^
```
[R/calc_rel_contr_node_time.R:70:25:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L70) *style:* **Put spaces around all infix operators.**
```r
  numerator = 1 - lambda/(mu) * exp((lambda-mu) * t0)
                       ~^~
```
[R/calc_rel_contr_node_time.R:70:26:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L70) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  numerator = 1 - lambda/(mu) * exp((lambda-mu) * t0)
                         ^
```
[R/calc_rel_contr_node_time.R:70:44:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L70) *style:* **Put spaces around all infix operators.**
```r
  numerator = 1 - lambda/(mu) * exp((lambda-mu) * t0)
                                          ~^~
```
[R/calc_rel_contr_node_time.R:71:15:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L71) *style:* **Use <-, not =, for assignment.**
```r
  denominator = 1 - lambda/(mu) * exp((lambda-mu) * t1)
              ^
```
[R/calc_rel_contr_node_time.R:71:27:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L71) *style:* **Put spaces around all infix operators.**
```r
  denominator = 1 - lambda/(mu) * exp((lambda-mu) * t1)
                         ~^~
```
[R/calc_rel_contr_node_time.R:71:28:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L71) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  denominator = 1 - lambda/(mu) * exp((lambda-mu) * t1)
                           ^
```
[R/calc_rel_contr_node_time.R:71:46:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L71) *style:* **Put spaces around all infix operators.**
```r
  denominator = 1 - lambda/(mu) * exp((lambda-mu) * t1)
                                            ~^~
```
[R/calc_rel_contr_node_time.R:72:52:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L72) *style:* **Put spaces around all infix operators.**
```r
  return(2 * lambda * (t0 - t1) - 2 * log(numerator/denominator))
                                                  ~^~
```
[R/calc_rel_contr_node_time.R:76:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L76) *style:* **Lines should not be more than 80 characters.**
```r
#' @description calculate the number of expected hidden nodes using equation 1 in Maceau et al. 2019
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/calc_rel_contr_node_time.R:86:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L86) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(class(phy) != "phylo") {
    ^
```
[R/calc_rel_contr_node_time.R:89:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L89) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(is.null(lambda) || is.null(mu)) {
    ^
```
[R/calc_rel_contr_node_time.R:93:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L93) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(sum(geiger::is.extinct(phy))) {
    ^
```
[R/calc_rel_contr_node_time.R:100:6:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L100) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  for(i in 1:length(bt)) {
     ^
```
[R/calc_rel_contr_node_time.R:100:12:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L100) *warning:* **Avoid 1:length(...) expressions, use seq_len.**
```r
  for(i in 1:length(bt)) {
           ^
```
[R/calc_rel_contr_node_time.R:103:8:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L103) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    for(j in 1:length(desc)) {
       ^
```
[R/calc_rel_contr_node_time.R:103:14:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L103) *warning:* **Avoid 1:length(...) expressions, use seq_len.**
```r
    for(j in 1:length(desc)) {
             ^
```
[R/calc_rel_contr_node_time.R:108:9:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L108) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(end_node %in% names(bt)) {
        ^
```
[R/calc_rel_contr_node_time.R:116:3:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L116) *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_rel_contr_node_time.R:119:28:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L119) *style:* **Put spaces around all infix operators.**
```r
    numerator <- 1 - lambda/(mu) * exp((lambda-mu) * t0)
                          ~^~
```
[R/calc_rel_contr_node_time.R:119:29:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L119) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    numerator <- 1 - lambda/(mu) * exp((lambda-mu) * t0)
                            ^
```
[R/calc_rel_contr_node_time.R:119:47:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L119) *style:* **Put spaces around all infix operators.**
```r
    numerator <- 1 - lambda/(mu) * exp((lambda-mu) * t0)
                                             ~^~
```
[R/calc_rel_contr_node_time.R:120:30:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L120) *style:* **Put spaces around all infix operators.**
```r
    denominator <- 1 - lambda/(mu) * exp((lambda-mu) * t1)
                            ~^~
```
[R/calc_rel_contr_node_time.R:120:31:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L120) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    denominator <- 1 - lambda/(mu) * exp((lambda-mu) * t1)
                              ^
```
[R/calc_rel_contr_node_time.R:120:49:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L120) *style:* **Put spaces around all infix operators.**
```r
    denominator <- 1 - lambda/(mu) * exp((lambda-mu) * t1)
                                               ~^~
```
[R/calc_rel_contr_node_time.R:121:54:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L121) *style:* **Put spaces around all infix operators.**
```r
    return(2 * lambda * (t0 - t1) - 2 * log(numerator/denominator))
                                                    ~^~
```
[R/calc_rel_contr_node_time.R:126:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_rel_contr_node_time.R#L126) *style:* **Trailing blank lines are superfluous.**
```r

^
```
[R/calc_summary_statistics.R:25:15:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/calc_summary_statistics.R#L25) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  output <- c( calc_beta(focal_tree),
              ^
```
[R/count_hidden.R:7:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/count_hidden.R#L7) *style:* **functions should have cyclomatic complexity of less than 15, this has 16.**
```r
reduce_tree <- function(tree) {
^
```
[R/count_hidden.R:11:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/count_hidden.R#L11) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(num_extant_species == length(tree$tip.label)) {
    ^
```
[R/count_hidden.R:25:15:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/count_hidden.R#L25) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
    b <- desc[ desc %in% extinct_species]
              ^
```
[R/count_hidden.R:32:9:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/count_hidden.R#L32) *style:* **Place a space before left parenthesis, except in a function call.**
```r
      if(n == root_node && length(b) == 1)  {
        ^
```
[R/create_equal_alignment.R:4:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/create_equal_alignment.R#L14) *warning:* **no visible global function definition for ‘count_hidden’**
```r
  num_hidden_nodes <- count_hidden(input_tree)
                      ^~~~~~~~~~~~
```
[R/create_equal_alignment.R:22:21:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/create_equal_alignment.R#L22) *warning:* **local variable ‘expected_rate2’ assigned but may not be used**
```r
  adjusted_rate <-  expected_rate2 <- sub_rate + sub_rate * H / total_bl
                    ^~~~~~~~~~~~~~
```
[R/create_equal_alignment.R:28:5:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/create_equal_alignment.R#L28) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  if(node_model == "unlinked") factor <- 2
    ^
```
[R/create_equal_alignment.R:30:3:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/create_equal_alignment.R#L30) *style:* **Variable and function name style should be snake_case.**
```r
  H <- (factor * num_nodes + num_hidden_nodes) * node_time
  ^
```
[R/create_equal_alignment.R:61:17:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/create_equal_alignment.R#L61) *style:* **Use <-, not =, for assignment.**
```r
    num_matches = length(which(all_subs == num_emp_subs))
                ^
```
[R/infer_phylogeny.R:24:26:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L24) *style:* **Use <-, not =, for assignment.**
```r
  output_trees_filenames = paste0(treatment_name, ".trees")
                         ^
```
[R/infer_phylogeny.R:25:23:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L25) *style:* **Use <-, not =, for assignment.**
```r
  output_log_filename = paste0(treatment_name, ".log")
                      ^
```
[R/infer_phylogeny.R:30:3:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L30) *warning:* **local variable ‘beast_opt’ assigned but may not be used**
```r
  beast_opt <- beastier::create_beast2_options()
  ^~~~~~~~~
```
[R/infer_phylogeny.R:32:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L32) *style:* **Lines should not be more than 80 characters.**
```r
                                 treelog = beautier::create_treelog(filename = output_trees_filenames,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/infer_phylogeny.R:33:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L33) *style:* **Lines should not be more than 80 characters.**
```r
                                                                    log_every = 5000),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/infer_phylogeny.R:34:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L34) *style:* **Lines should not be more than 80 characters.**
```r
                                 tracelog = beautier::create_tracelog(filename = output_log_filename,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/infer_phylogeny.R:35:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L35) *style:* **Lines should not be more than 80 characters.**
```r
                                                                      log_every = 5000)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/infer_phylogeny.R:71:4:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/infer_phylogeny.R#L71) *style:* **Commented code should be removed.**
```r
 # file.remove(beast_opt$output_state_filename)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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:43:15:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/R/util.R#L43) *style:* **There should be a space between right parenthesis and an opening curly brace.**
```r
  if (compress){
              ^~
```
[R/util.R:108:1:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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-calc-dist.R:19:26:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/tests/testthat/test-calc-dist.R#L19) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  testthat::expect_error( calc_dist(seq_node_sub$alignment) )
                         ^
```
[tests/testthat/test-calc-dist.R:19:60:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/tests/testthat/test-calc-dist.R#L19) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  testthat::expect_error( calc_dist(seq_node_sub$alignment) )
                                                           ^
```
[tests/testthat/test-create_equal_alignment.R:22:26:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/tests/testthat/test-create_equal_alignment.R#L22) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
  testthat::expect_equal( length(seq_alt$alignment),
                         ^
```
[tests/testthat/test-dual_independent.R:10:3:](https://github.com/thijsjanzen/nodeSub/blob/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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/839ceb7e5512ccc3dd1dfc18c96c146677c61e1a/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)
  ^~
```


감사합니다


@h0tk3y Are these dependencies needed? I don't see usages of the new modules in `cli-common`. But if they appear in the future, note that `cli-common` is packed to the IDEA plugin, so then we'd need to also add at least `:compiler:ir.serialization.common` to `projectsToShadow` in `prepare/idea-plugin/build.gradle.kts`, to prevent Plugin Verifier errors.


Successfully deployed to following URLs:

* https://smurygin-n0t67ok2e.now.sh
* https://smurygin.com
* https://smurygin.smurygin.now.sh
* https://smurygin-git-master.smurygin.now.sh


Semantic mark-up has been forgotten here.


Unnecessary?


# 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)|


Successfully deployed to following URLs:

* https://personal-21rytfgoo.now.sh
* https://www.connordav.is
* https://personal.connordavis.now.sh
* https://personal-git-master.connordavis.now.sh


should set backPressed again to false? or is not actually needed?


Cheers on first commit here! :champagne:


I'm not going through all your logs. You need to open an issue with only the relevant debug logs, like it was done here: https://www.reddit.com/r/PyMedusa/comments/e8jw5h/why_is_medusa_running_a_backlog_search_when_i/


I still see copy/paste :-(
What's wrong with <stringProp name=\"%s\">%s</stringProp>


เว็บที่ใช้ในการแปลงไฟล์


Player Banned list = BanList


IIUC, then this gives a ready to use value that could then be used for aria-owns -- that would be lovely. I'm unable to test it directly though (I get an error from closure/goog/base.js "goog.require could not find: sre.System")


No, it's not.
Previously, there was a call to the member, but now extension should be imported explicitly


Probably, it'd nice to have an assertion then


New upload


ok, I will use that approach


Ok


ZEIT Now cannot deploy this project to production due to following domain related issues:

 * `collected.systems`(for alias `collected.systems`) is not found inside your account. [Add it](https://zeit.co/dashboard/royalicing/domains?action=add&domain=collected.systems).


1. Class name should not be actions e.g. LoadCensusDataFactory
2. Spacing, code formatting is not consistent
3. Census Adapter LoadCensusData (non abstract) does not require Optional csvFilePath
4. Delegated finding Sorting field functionality to different class - Good
5. Overall code quality is good


Successfully deployed to following URLs:

* https://personal-n35d510lu.now.sh
* https://www.connordav.is
* https://personal.connordavis.now.sh
* https://personal-git-master.connordavis.now.sh


@sigsergv faggot


GG


@caveman99 is right. Every time there is a config.sh change from oscam svn, the file permissions change from 755 to 644. I have to manually change them back before committing, but I forgot this time. It will be fixed soon.


dfdgdg


我们都是好哈子


This is not fake... This is terroRussia... [https://habr.com/ru/company/itsumma/blog/479942/](https://habr.com/ru/company/itsumma/blog/479942/)


Successfully deployed to following URLs:

* https://smurygin-m4pb3xoys.now.sh
* https://smurygin.com
* https://smurygin.smurygin.now.sh
* https://smurygin-git-master.smurygin.now.sh


LLVM fails compiling for me now:

```
DEBUG:EmcalRun3Converter:LLVM:aliceo2: clang -cc1 version 7.1.0 based upon LLVM 7.1.0 default target x86_64-apple-darwin19.0.0
DEBUG:EmcalRun3Converter:LLVM:aliceo2: ignoring nonexistent directory "/usr/include/c++/v1"
DEBUG:EmcalRun3Converter:LLVM:aliceo2: ignoring nonexistent directory "/usr/include"
DEBUG:EmcalRun3Converter:LLVM:aliceo2: #include "..." search starts here:
DEBUG:EmcalRun3Converter:LLVM:aliceo2: #include <...> search starts here:
DEBUG:EmcalRun3Converter:LLVM:aliceo2:  /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/include/c++/v1
DEBUG:EmcalRun3Converter:LLVM:aliceo2:  /usr/local/include
DEBUG:EmcalRun3Converter:LLVM:aliceo2:  /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/lib/clang/7.1.0/include
DEBUG:EmcalRun3Converter:LLVM:aliceo2:  /System/Library/Frameworks (framework directory)
DEBUG:EmcalRun3Converter:LLVM:aliceo2:  /Library/Frameworks (framework directory)
DEBUG:EmcalRun3Converter:LLVM:aliceo2: End of search list.
DEBUG:EmcalRun3Converter:LLVM:aliceo2: In file included from test.cc:1:
DEBUG:EmcalRun3Converter:LLVM:aliceo2: In file included from /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/include/c++/v1/iostream:38:
DEBUG:EmcalRun3Converter:LLVM:aliceo2: In file included from /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/include/c++/v1/ios:215:
DEBUG:EmcalRun3Converter:LLVM:aliceo2: In file included from /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/include/c++/v1/iosfwd:96:
DEBUG:EmcalRun3Converter:LLVM:aliceo2: /Users/markusfasel/alice/sw/INSTALLROOT/5035e8ea7f65332245f5d7d80272b47fa0b9f91b/osx_x86-64/LLVM/v7.1.0-3/include/c++/v1/wchar.h:119:15: fatal error: 'wchar.h' file not found
DEBUG:EmcalRun3Converter:LLVM:aliceo2: #include_next <wchar.h>
DEBUG:EmcalRun3Converter:LLVM:aliceo2:               ^~~~~~~~~
```
macOS Catalina, XCode 11.0


Cześć Maciej. o ile wydaje mi sie ze bankomat jest dobrze przetestowany , to mam problem z bankiem... Np w metodzie testowej  :
     public void shouldDisplayTotalBalance() {
         int total = bank.getTotalBalance();
         assertEquals(4, total);
     }


please fix CI. node.js 6, not support  array function in xo/cli-main.js.


Хороший коммит!


This is not fake... This is terroRussia... [https://www.zdnet.com/article/russian-police-raid-nginx-moscow-office/](https://www.zdnet.com/article/russian-police-raid-nginx-moscow-office/)


Drink


Successfully deployed to following URLs:

* https://ripe-components-vue-bhwiitfdu.now.sh
* https://ripe-components-vue.platforme.now.sh
* https://ripe-components-vue-git-master.platforme.now.sh


Successfully deployed to following URLs:

* https://smurygin-cfdgzw674.now.sh
* https://smurygin.com
* https://smurygin.smurygin.now.sh
* https://smurygin-git-master.smurygin.now.sh


Successfully deployed to following URLs:

* https://hci-prototype-h5b7hq46l.now.sh
* https://hci-prototype.now.sh
* https://hci-prototype.bazumo.now.sh
* https://hci-prototype-git-master.bazumo.now.sh


Successfully deployed to following URLs:

* https://nextjs-pangu-jsfg0m2cj.now.sh
* https://nextjs-pangu.now.sh
* https://nextjs-pangu.paiyou-network.now.sh
* https://nextjs-pangu-git-master.paiyou-network.now.sh


l


on the main repo page
![kép](https://user-images.githubusercontent.com/952007/70797046-ed84ce80-1da3-11ea-9e60-33b806dc7188.png)


The parameter is not user but username. Please use meaningful names for variables.


Changed Theme Template


Successfully deployed to following URLs:

* https://ohjelmointi-19-jyugfoofn.now.sh
* https://ohjelmointi-19.mooc.fi
* https://ohjelmointi-19.mooc.now.sh
* https://ohjelmointi-19-git-master.mooc.now.sh


Let'sblvous


Successfully deployed to following URLs:

* https://smurygin-2u34ckqun.now.sh
* https://smurygin.com
* https://smurygin.smurygin.now.sh
* https://smurygin-git-master.smurygin.now.sh


Successfully deployed to following URLs:

* https://ohjelmointi-20-3qotafkps.now.sh
* https://ohjelmointi-20.mooc.fi
* https://ohjelmointi-20.mooc.now.sh
* https://ohjelmointi-20-git-master.mooc.now.sh


I use Refined GitHub FireFox Extension and GitHub Dark Script from StylishThemes


Don't you get people it's a joke? I mean it's obviously a prank based on recent Rambler/Nginx activity. No one is going to merge this, calm down.

Блин чуваки, программист из новосиба потроллил а вы и повелись.


s


Very creative implementation! :))


Try to choose meaningful names for variables.


Successfully deployed to following URLs:

* https://quiz-8kdq7jo56.now.sh
* https://quiz-inky-nu.now.sh
* https://quiz.pozharitskijdenis.now.sh
* https://quiz-git-master.pozharitskijdenis.now.sh


Successfully deployed to following URLs:

* https://livrable-44amswdvv.now.sh
* https://livrable.now.sh
* https://livrable.toutchykipik.now.sh
* https://livrable-git-master.toutchykipik.now.sh


Successfully deployed to following URLs:

* https://personalwebsite-8bc7uv7ph.now.sh
* https://erhaanarda.now.sh
* https://personalwebsite.erhanarda.now.sh
* https://personalwebsite-git-master.erhanarda.now.sh


Successfully deployed to following URLs:

* https://valde-na0s5hycm.now.sh
* https://valde.caurea.org
* https://valde.werehamster.now.sh
* https://valde-git-master.werehamster.now.sh


Successfully deployed to following URLs:

* https://personalwebsite-d3b9omeue.now.sh
* https://erhaanarda.now.sh
* https://personalwebsite.erhanarda.now.sh
* https://personalwebsite-git-master.erhanarda.now.sh


Вы не в той стране живёте чтобы вот так троллить и шутить. Впрочем, что вам ещё осталось...
Впрочем, в вашей чудесной стране ничего другого быть и не могло.


@JuliaRegistrator register


Registration pull request created: [JuliaRegistries/General/6680](https://github.com/JuliaRegistries/General/pull/6680)

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if [Julia TagBot](https://github.com/apps/julia-tagbot) is installed, or can be done manually through the github interface, or via:
```
git tag -a v0.1.7 -m "<description of version>" c578fa02a9c5dbc11d61f377fa2245167eb9210b
git push origin v0.1.7
```


You can also use Action if there is no need fro return value.


Although an example is pretty hard to find but what about this one:
https://github.com/sifive/sifive-blocks/blob/master/src/main/scala/devices/chiplink/ChipLink.scala#L18
The `slaveNode` asks for two managers in the configuation.


Successfully deployed to following URLs:

* https://takwimuafrica-bfs0da3ym.now.sh
* https://dev.takwimu.africa
* https://takwimuafrica.takwimu.now.sh
* https://takwimuafrica-git-master.takwimu.now.sh


I think you don't need if(value == "") check here. Can't just use else?
else
{ value = $" Action Welcome {username.ToString()}"; }


Successfully deployed to following URLs:

* https://livrable-r89gl8v8i.now.sh
* https://livrable.now.sh
* https://livrable.toutchykipik.now.sh
* https://livrable-git-master.toutchykipik.now.sh


Successfully deployed to following URLs:

* https://dotcom-hge91wyna.now.sh
* https://smokeyfro.com
* https://dotcom.smokeyfro.now.sh
* https://dotcom-git-master.smokeyfro.now.sh


Finally!


Ah, yes.


Indeed. I'll add a range variant


what if user enters "jack" and not "Jack"?
You should consider this to be case sensitive, the alarm should be fired in all cases when user enters "jack", Jack", or JACK".


GJ :) Now we get rid of the classic only code for armor multiplier?


> @zokl can you get rid of the patch and try again?

I try to compile it again without patches and the compilation fails.

The second problem is, that after installing the package, the module is placed outside the Lua scan.

`lua: aa.lua:1: module 'luars232' not found:
        no field package.preload['luars232']
        no file './luars232.lua'
        no file '/usr/share/lua/luars232.lua'
        no file '/usr/share/lua/luars232/init.lua'
        no file '/usr/lib/lua/luars232.lua'
        no file '/usr/lib/lua/luars232/init.lua'
        no file './luars232.so'
        no file '/usr/lib/lua/luars232.so'
        no file '/usr/lib/lua/loadall.so'
stack traceback:
        [C]: in function 'require'
        aa.lua:1: in main chunk
        [C]: ?`


I'm not sure I follow. Why would it not?


Hi Lukas

my testing for mb3:

[Dining Room Air Purifier] Discovered Mi Air Purifier (zhimi.airpurifier.mb3) at 192.168.31.17
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Model       : zhimi.airpurifier.mb3
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Power       : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Mode        : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Temperature : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Humidity    : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] Air Quality : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] LED         : undefined
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] updateHumidity: null
[12/13/2019, 11:38:50 AM] [Dining Room Air Purifier] TypeError: Cannot read property 'celsius' of null
    at /homebridge/node_modules/homebridge-xiaomi-purifier/index.js:204:44


This check should be case insensitive, it means should work also for "jack", "JACK" or "Jack' inputs.


![](https://github.trello.services/images/mini-trello-icon.png) [(1) Factorisation a faire suite a la session de mentorat](https://trello.com/c/QbYRtLRx/27-1-factorisation-a-faire-suite-a-la-session-de-mentorat)


Nice, congratz. Yes probably some code to remove now.


Successfully deployed to following URLs:

* https://mcs-new-version-b2uvulg0t.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


1. Unnecessary spacing
2. Not removed unwanted code - sort function not getting used
3. Overall programming hygiene is good


I think is not needed, it allow you to navigate even if it is true


Successfully deployed to following URLs:

* https://interpride-1q25w5cbf.now.sh
* https://interpride2020.org
* https://interpride.oslopride1.now.sh
* https://interpride-git-master.oslopride1.now.sh


Successfully deployed to following URLs:

* https://gie-next-8nds3oaz3.now.sh
* https://gie-test.now.sh
* https://gie-next.gie.now.sh
* https://gie-next-git-master.gie.now.sh


Successfully deployed to following URLs:

* https://livrable-h67dtv383.now.sh
* https://livrable.now.sh
* https://livrable.toutchykipik.now.sh
* https://livrable-git-master.toutchykipik.now.sh


I checked how this works here: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/cc802410(v=office.14)#remarks , I saw the `style="3"` of the example and I wondered if maybe we are broking any other properties generating the `<col` here.


You can also make this check case-insensitive to work for "Jack", "jack" and "JACK" inputs the same way: fire the event.


What does:

```
$(find $XCODE_PATH -type d -path "*/MacOSX.sdk/usr/include" | sed -e 's|/usr/include||g')
```

 return you?


well done keep it up


In case you updated Xcode, did you do `xcode-select --install`?


[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/count_hidden.R:7:1:](https://github.com/thijsjanzen/nodeSub/blob/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/R/create_equal_alignment.R#L14) *warning:* **no visible global function definition for ‘count_hidden’**
```r
  num_hidden_nodes <- count_hidden(input_tree)
                      ^~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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/49eb57e827ef21feb21388673b52dfefb54e7e9b/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)
  ^~
```


Yes, I'm onto it.

As damage values are still not 100% perfect, I need to ensure that no exception code for damage is still required. Once, my mind is made, I'll remove the now useless code.


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): scanning error
encountered during parsing: mapping values are not allowed in this context
(line 3, column 9) in /poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/davidlouis101/TutorialPlugin/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `8d5f2f82-1d9e-11ea-8261-83b721f0cd8b`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


create a generic filter with the filtersOnly object


        public List<string> userNames = new List<string>();
This definition would be better, as it is defined as list - contains more than one element, and start class member filed's names with lower-case letter.


Successfully deployed to following URLs:

* https://beautelabs-ar8qnu36s.now.sh
* https://beautelabs.sivagami.now.sh
* https://beautelabs-git-master.sivagami.now.sh


Implements #140


How would you make this check case-insensitive, so that for inputs like "Jack", jack" and "JACK" the BannedName event is fired?


Why this is empty string?