[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/R/infer_phylogeny.R#L66) *warning:* **no visible binding for global variable ‘beast2_options_output_state_filename’**
```r
  file.remove(beast2_options_output_state_filename)
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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/5f3bff9c52aac5cf39668a5130ef4fd930b86ae1/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)
  ^~
```


FLOCSSで各ディレクトリを分割させたら各ディレクトリ内で `_imports.scss` を作成してあげるとapp.scssがシンプルに収まるよ！

/scss/foudation/_imports.scss
```
@import "./reset";
@import "./base";
@import "./var";
@import "./font"/;
```


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

I updated the Github team because of this commit.

- @tilne, @rexcsn, @ddeidda, @enrico-usai, @demartinofra were added to conda-forge. Welcome to conda-forge!
  Go to https://github.com/orgs/conda-forge/invitation see your invitation.

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

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

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


[R/calc_rel_contr_node_time.R:61:1:](https://github.com/thijsjanzen/nodeSub/blob/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/R/infer_phylogeny.R#L66) *warning:* **no visible binding for global variable ‘beast2_options_output_state_filename’**
```r
  file.remove(beast2_options_output_state_filename)
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/sim_dual_independent.R:1:1:](https://github.com/thijsjanzen/nodeSub/blob/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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/b2fe015fdaf9526ea551e63447b52c3270921c27/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)
  ^~
```


Let's keep all verbosity levels as enum or something similar.
```
0 - INFO
1 - WARN
2 - ERR
```

Default verbosity level will be set to `0`, specifying `-q` on CLI will set verbosity level to `2` (or `1`).


Successfully deployed to following URLs:

* https://nosql-server-56dz5ha4m.now.sh
* https://nosql-server.now.sh
* https://nosql-server.gayankuruppu.now.sh
* https://nosql-server-git-master.gayankuruppu.now.sh


Successfully deployed to following URLs:

* https://tourvo-apollo-1p4p3cxme.now.sh
* https://tourvo-apollo-delta-sepia.now.sh
* https://tourvo-apollo.ppromerojr.now.sh
* https://tourvo-apollo-git-master.ppromerojr.now.sh


> There is no good way to assert that no command was sent
It is wrong assumption: current fiber will yield when you really do select and this is totally different from no-op select. My test checks that current fiber yields if database is not the same as the current one and that current fiber will execute to the end without interruption if database is the same as the selected one.


# 洪可凡Python策展
## 自我介绍
- 名字：洪可凡
- 班级：18网新一班/18政商2班
- 个人性格：平易近人，善于与人沟通交流，写作能力较强，对于未知的东西喜欢成体系的理解，但是前提建立在我有兴趣的事物
### 学习成果展示
- [个人网站](https://coco022.gitee.io/)
- [Pythonanywhere上的选色小网页](coco022.pythonanywhere.com)

### 个人能力简述

- 在Python学习过程中，在老师的引导下作出了购物车，旅游景区的定位（Python多级菜单），猜数字小游戏等。
- 掌握Python的基础知识，包括数据结构，元组，字典，列表，集合。
- 运用flask完成颜色选择器，实现在网页上存储用户使用的信息。
- 完成MySql数据库的下载与配置，简单的实现应用数据存储，但是这方面还有待加强
- 最新学习高级迭代，正在努力弄懂！！！

### 自我评价
- 我是一个做事认真负责的人，有比较多的想法，逻辑思维也还可以，肯吃苦，比较乐观，可以熬夜
- 我对代码的理解可能比较慢，但是我可以多花时间在这方面，努力不足我的缺点，正在培养干一行爱一行的精神，希望通过这个期末项目我的能力可以得到全面的提升
### 合作者寄语
- 在做项目的时候我们不用想太多，把每个细节做到极致，结果就是好的，一起加油呀！
### 联系方式
- 微信：kfzb-51870
- QQ：2448376599@qq.com


probably would be better to put the cheaper denominator check first.


Successfully deployed to following URLs:

* https://antonclick-5n514cy5i.now.sh
* https://anton.click
* https://antonclick.zemlanin.now.sh
* https://antonclick-git-master.zemlanin.now.sh


No non-null data in prod:
{ neurological_exam (first:0, order_by_desc:"muscle_stretch_left_leg") {muscle_stretch_left_arm muscle_stretch_right_arm muscle_stretch_right_leg muscle_stretch_left_leg}}


Successfully deployed to following URLs:

* https://mystik-api-ffmy69ivu.now.sh
* https://mystik-api.now.sh
* https://mystik-api.lyncee59.now.sh
* https://mystik-api-git-master.lyncee59.now.sh


Ok, kporcem. Shnorhakal em


You are perfectly right.

This comes from the assumption of mine that min and max levels are either equals or next to each other. Though I can not think of a NPC where MaxLevel > MinLevel + 1, that does not mean that none exists and moreover, database implicit rules should not forced into core like this.

I'll update the code, thank you!


You don't seem to need `POLL` anymore.


Successfully deployed to following URLs:

* https://reacnetgenerator-oafasokwv.now.sh
* https://reacnetgenerator.tongzhugroup.now.sh
* https://reacnetgenerator-git-master.tongzhugroup.now.sh


クラス名の設計ルールにキャメルケースとスネークケースが混在しているのは意図的かな…？
でなければ、可能な限り統一した方が良いかも！


Successfully deployed to following URLs:

* https://antonclick-27gta4g7j.now.sh
* https://anton.click
* https://antonclick.zemlanin.now.sh
* https://antonclick-git-master.zemlanin.now.sh


This argument is not used, so can be removed, and you won't need `CONFIG_POLL`.


Successfully deployed to following URLs:

* https://react-three-fiber-101-okb4xl2id.now.sh
* https://react-three-fiber-101.now.sh
* https://react-three-fiber-101.rqbazan.now.sh
* https://react-three-fiber-101-git-master.rqbazan.now.sh


Deploy preview for _website_ ready!

Built with commit 2cfa4dbd9f937348fcb593e7f8a976455a204174

https://spartacus-6woy21u88.now.sh


I'm not concerned about losing units at all, just worried about our implementation of the schema and changes to it for StationXML 1.1.
Just saying that they were allowed to have units in 1.0 and now they're not and it wasn't mentioned in release notes that this changed.


This seems wrong.  You've set the number of simultaneous holders of the semaphore to 2^32.  It should probably be 1.