Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ILSM: Analyze Interconnection Structure of Multilayer Interaction Networks #661

Open
15 of 29 tasks
WeichengSun opened this issue Sep 28, 2024 · 9 comments
Open
15 of 29 tasks

Comments

@WeichengSun
Copy link

Submitting Author Name: Weicheng Sun
Submitting Author Github Handle: @WeichengSun
Other Package Authors Github handles: (comma separated, delete if none)
Repository: https://github.com/WeichengSun/ILSM
Version submitted: 1.0.3.2
Submission type: Standard
Editor: TBD
Reviewers: TBD

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: ILSM
Title: Analyze Interconnection Structure of Multilayer Interaction Networks
Version: 1.0.3.2
Authors@R: c(
    person("Weicheng", "Sun", , "[email protected]", role = c("aut", "cre")),
    person("Chuan", "Yan", , "[email protected]", role = c("aut")),
    person("Yangyang", "Zhao", , "[email protected]", role = c("aut")))
Description: 
    In view of the analysis of the structural characteristics of the multilayer 
    network has been complete, however, there is still a lack of a unified 
    operation that can quickly obtain the corresponding characteristics of the 
    multilayer network. 
    To solve this insufficiency, 'ILSM' was designed for supporting calculating 
    such metrics of multilayer networks by functions of this R package.
License: MIT + file LICENSE
URL: https://github.com/WeichengSun/ILSM
BugReports: https://github.com/WeichengSun/ILSM/issues
Encoding: UTF-8
Roxygen: list (markdown = TRUE, roclets = c ("namespace", "rd", "srr::srr_stats_roclet"))
RoxygenNote: 7.3.1
Depends: R (>= 3.5.0)
Imports: 
    stats,
    Matrix,
    igraph
Suggests: 
    knitr,
    rmarkdown,
    testthat (>= 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • text analysis
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

This package that wrap professional programs used for multilayer interaction network research. These programs must be specific to interconnection structure. It focuses on interacnnection motif for handling matrices or 'igraph'data.

  • Who is the target audience and what are scientific applications of this package?

In community ecology, ecological network is used to represent the complex ecological interaction system. Therefore, researchers in this field often pay attention to the work from the network perspective. Therefore, this package is based on the multilayer ecological network to study the interconnection structure, hoping to provide convenience for the mentioned audience.

There is an R package(bmotif) that does similar work in the field of ecological networks, but the program provided by it is only used to study the structure of bipartite networks and is relatively simple, while the new package only studies the structure of multilayer interacting networks, which is more complex.

n/a

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

#654

  • Explain reasons for any pkgcheck items which your package is unable to pass.

Because we have submitted the package ILSM to CRAN ahead of time, the package name is duplicated and the pkgcheck items result is not available.

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

@ropensci-review-bot
Copy link
Collaborator

Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help for help.

@ropensci-review-bot
Copy link
Collaborator

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for ILSM (v1.0.3.2)

git hash: 262b9217

  • ✖️ Package name is not available (on CRAN).
  • ✔️ has a 'codemeta.json' file.
  • ✔️ has a 'contributing' file.
  • ✔️ uses 'roxygen2'.
  • ✔️ 'DESCRIPTION' has a URL field.
  • ✔️ 'DESCRIPTION' has a BugReports field.
  • ✔️ Package has at least one HTML vignette
  • ✔️ All functions have examples.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 82.5%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.
  • 👀 Function names are duplicated in other packages

Important: All failing checks above must be addressed prior to proceeding

(Checks marked with 👀 may be optionally addressed.)

Package License: MIT + file LICENSE


1. rOpenSci Statistical Standards (srr package)

✔️ All applicable standards [v0.2.0] have been documented in this package (46 complied with; 27 N/A standards)


2. Package Dependencies

Details of Package Dependency Usage (click to open)

The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.

type package ncalls
internal base 678
internal ILSM 161
imports igraph 62
imports Matrix 13
imports stats 3
suggests knitr NA
suggests rmarkdown NA
suggests testthat NA
linking_to NA NA

Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table.

base

c (102), matrix (70), sum (59), return (40), rownames (35), data.frame (34), rep (33), t (31), ncol (28), rowSums (28), length (26), colSums (24), for (16), list (15), as.matrix (14), apply (13), message (12), nrow (12), paste (12), unique (11), lapply (9), as.numeric (7), colnames (5), T (4), which (4), rbind (3), abs (2), drop (2), if (2), mean (2), round (2), sample (2), tcrossprod (2), unlist (2), eigen (1), F (1), Im (1), is.na (1), kronecker (1), max (1), min (1), mode (1), names (1), order (1), Re (1), replace (1), solve (1), sqrt (1), which.max (1)

ILSM

Two (42), Three (15), mEdges (10), Four (7), GetLargestEigenv_r (6), sumR_r (6), adject_net (5), GetMultiClosenessCentrality_r (5), GetMultiEigenvectorCentrality_r (5), GetMultiHubCentrality_r (5), GetMultiKatzCentrality_r (5), GetMultiPageRankCentrality_r (5), Kendall_cor (5), GetMultiAuthCentrality_r (4), emptyR (3), me_interlayer (3), vaznullR (3), BuildSupraAdjacencyMatrixFromExtendedEdgelist_r (2), BuildSupraTransitionMatrixFromSupraAdjacencyMatrix_r (2), edgelist_from_matrices (2), GetMultiPathStatistics_r (2), role_sim (2), SupraAdjacencyToBlockTensor_r (2), build_net (1), coid (1), cois (1), diagR_r (1), GetMultiRWCentrality_r (1), hc (1), icmotif_count (1), icmotif_role (1), igraph_from_matrices (1), Multi_motif (1), node_cv (1), null_model (1), pc (1), poc (1), SavueR (1)

igraph

V (49), graph_from_adjacency_matrix (8), distances (2), layout_with_sugiyama (2), get.edgelist (1)

Matrix

t (5), Matrix (3), sparseMatrix (3), Diagonal (2)

stats

C (1), lm (1), offset (1)


3. Statistical Properties

This package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing.

Details of statistical properties (click to open)

The package has:

  • code in R (100% in 22 files) and
  • 3 authors
  • 1 vignette
  • 1 internal data file
  • 3 imported packages
  • 13 exported functions (median 60 lines of code)
  • 65 non-exported functions in R (median 19 lines of code)

Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
The following terminology is used:

  • loc = "Lines of Code"
  • fn = "function"
  • exp/not_exp = exported / not exported

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

The final measure (fn_call_network_size) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile.

measure value percentile noteworthy
files_R 22 82.4
files_vignettes 1 62.0
files_tests 12 90.0
loc_R 2281 84.5
loc_vignettes 40 6.0
loc_tests 441 68.9
num_vignettes 1 59.0
data_size_total 5642 66.4
data_size_median 5642 74.6
n_fns_r 78 68.2
n_fns_r_exported 13 53.7
n_fns_r_not_exported 65 72.4
n_fns_per_file_r 2 38.5
num_params_per_fn 2 8.2
loc_per_fn_r 24 69.6
loc_per_fn_r_exp 60 83.8
loc_per_fn_r_not_exp 19 60.9
rel_whitespace_R 8 66.6
rel_whitespace_vignettes 22 5.4
rel_whitespace_tests 12 57.1
doclines_per_fn_exp 81 84.5
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 115 80.3

3a. Network visualisation

Click to see the interactive network visualisation of calls between objects in package


4. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

R-CMD-check.yaml

GitHub Workflow Results

id name conclusion sha run_number date
11073028649 pkgcheck failure 262b92 9 2024-09-27
11073028622 pkgdown.yaml success 262b92 18 2024-09-27
11073028626 R-CMD-check.yaml success 262b92 17 2024-09-27
11073028621 test-coverage.yaml success 262b92 17 2024-09-27

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following check_fails:

  1. cyclocomp
  2. no_import_package_as_a_whole

Test coverage with covr

Package coverage: 82.45

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
Multi_motif 99
icmotif_role 59
cois 25
node_cv 21
Kendall_cor 18
coid 17
icmotif_count 17

Static code analyses with lintr

lintr found the following 487 potential issues:

message number of times
Avoid 1:length(...) expressions, use seq_len. 2
Avoid 1:ncol(...) expressions, use seq_len. 5
Avoid 1:NCOL(...) expressions, use seq_len. 2
Avoid 1:nrow(...) expressions, use seq_len. 22
Avoid 1:NROW(...) expressions, use seq_len. 2
Avoid library() and require() calls in packages 2
Lines should not be more than 80 characters. This line is 100 characters. 7
Lines should not be more than 80 characters. This line is 102 characters. 12
Lines should not be more than 80 characters. This line is 103 characters. 2
Lines should not be more than 80 characters. This line is 104 characters. 10
Lines should not be more than 80 characters. This line is 105 characters. 4
Lines should not be more than 80 characters. This line is 106 characters. 1
Lines should not be more than 80 characters. This line is 107 characters. 2
Lines should not be more than 80 characters. This line is 108 characters. 1
Lines should not be more than 80 characters. This line is 109 characters. 6
Lines should not be more than 80 characters. This line is 110 characters. 9
Lines should not be more than 80 characters. This line is 111 characters. 6
Lines should not be more than 80 characters. This line is 112 characters. 1
Lines should not be more than 80 characters. This line is 113 characters. 2
Lines should not be more than 80 characters. This line is 114 characters. 4
Lines should not be more than 80 characters. This line is 115 characters. 1
Lines should not be more than 80 characters. This line is 116 characters. 3
Lines should not be more than 80 characters. This line is 117 characters. 4
Lines should not be more than 80 characters. This line is 118 characters. 3
Lines should not be more than 80 characters. This line is 119 characters. 2
Lines should not be more than 80 characters. This line is 120 characters. 1
Lines should not be more than 80 characters. This line is 121 characters. 2
Lines should not be more than 80 characters. This line is 122 characters. 3
Lines should not be more than 80 characters. This line is 123 characters. 1
Lines should not be more than 80 characters. This line is 124 characters. 7
Lines should not be more than 80 characters. This line is 125 characters. 5
Lines should not be more than 80 characters. This line is 126 characters. 5
Lines should not be more than 80 characters. This line is 127 characters. 5
Lines should not be more than 80 characters. This line is 128 characters. 5
Lines should not be more than 80 characters. This line is 129 characters. 7
Lines should not be more than 80 characters. This line is 130 characters. 16
Lines should not be more than 80 characters. This line is 131 characters. 2
Lines should not be more than 80 characters. This line is 132 characters. 4
Lines should not be more than 80 characters. This line is 133 characters. 2
Lines should not be more than 80 characters. This line is 134 characters. 1
Lines should not be more than 80 characters. This line is 139 characters. 9
Lines should not be more than 80 characters. This line is 143 characters. 2
Lines should not be more than 80 characters. This line is 144 characters. 8
Lines should not be more than 80 characters. This line is 148 characters. 3
Lines should not be more than 80 characters. This line is 149 characters. 2
Lines should not be more than 80 characters. This line is 153 characters. 1
Lines should not be more than 80 characters. This line is 154 characters. 2
Lines should not be more than 80 characters. This line is 155 characters. 2
Lines should not be more than 80 characters. This line is 157 characters. 2
Lines should not be more than 80 characters. This line is 162 characters. 1
Lines should not be more than 80 characters. This line is 163 characters. 1
Lines should not be more than 80 characters. This line is 168 characters. 3
Lines should not be more than 80 characters. This line is 170 characters. 2
Lines should not be more than 80 characters. This line is 171 characters. 12
Lines should not be more than 80 characters. This line is 174 characters. 1
Lines should not be more than 80 characters. This line is 178 characters. 4
Lines should not be more than 80 characters. This line is 179 characters. 1
Lines should not be more than 80 characters. This line is 180 characters. 2
Lines should not be more than 80 characters. This line is 181 characters. 1
Lines should not be more than 80 characters. This line is 182 characters. 1
Lines should not be more than 80 characters. This line is 185 characters. 3
Lines should not be more than 80 characters. This line is 187 characters. 8
Lines should not be more than 80 characters. This line is 188 characters. 1
Lines should not be more than 80 characters. This line is 194 characters. 3
Lines should not be more than 80 characters. This line is 197 characters. 2
Lines should not be more than 80 characters. This line is 198 characters. 1
Lines should not be more than 80 characters. This line is 203 characters. 6
Lines should not be more than 80 characters. This line is 205 characters. 1
Lines should not be more than 80 characters. This line is 207 characters. 1
Lines should not be more than 80 characters. This line is 208 characters. 1
Lines should not be more than 80 characters. This line is 218 characters. 1
Lines should not be more than 80 characters. This line is 221 characters. 6
Lines should not be more than 80 characters. This line is 224 characters. 1
Lines should not be more than 80 characters. This line is 227 characters. 1
Lines should not be more than 80 characters. This line is 228 characters. 1
Lines should not be more than 80 characters. This line is 229 characters. 2
Lines should not be more than 80 characters. This line is 251 characters. 2
Lines should not be more than 80 characters. This line is 255 characters. 9
Lines should not be more than 80 characters. This line is 256 characters. 8
Lines should not be more than 80 characters. This line is 257 characters. 1
Lines should not be more than 80 characters. This line is 304 characters. 8
Lines should not be more than 80 characters. This line is 81 characters. 2
Lines should not be more than 80 characters. This line is 82 characters. 3
Lines should not be more than 80 characters. This line is 83 characters. 12
Lines should not be more than 80 characters. This line is 84 characters. 16
Lines should not be more than 80 characters. This line is 85 characters. 11
Lines should not be more than 80 characters. This line is 86 characters. 6
Lines should not be more than 80 characters. This line is 87 characters. 4
Lines should not be more than 80 characters. This line is 88 characters. 19
Lines should not be more than 80 characters. This line is 89 characters. 6
Lines should not be more than 80 characters. This line is 90 characters. 4
Lines should not be more than 80 characters. This line is 91 characters. 4
Lines should not be more than 80 characters. This line is 92 characters. 13
Lines should not be more than 80 characters. This line is 93 characters. 7
Lines should not be more than 80 characters. This line is 94 characters. 9
Lines should not be more than 80 characters. This line is 95 characters. 27
Lines should not be more than 80 characters. This line is 96 characters. 7
Lines should not be more than 80 characters. This line is 97 characters. 14
Lines should not be more than 80 characters. This line is 98 characters. 1
Lines should not be more than 80 characters. This line is 99 characters. 4
Use <-, not =, for assignment. 10


5. Other Checks

Details of other checks (click to open)

✖️ The following 3 function names are duplicated in other packages:

    • hc from adana, bnlearn, mclust, multigraph
    • null_model from fabletools, insight, parsnip, qtlpoly
    • pc from bReeze, FaultTree, gamlss.foreach, kader, lessR, pcalg, SEAsic, tabr, yasp


Package Versions

package version
pkgstats 0.1.6.17
pkgcheck 0.1.2.58
srr 0.1.3.11


Editor-in-Chief Instructions:

Processing may not proceed until the items marked with ✖️ have been resolved.

@WeichengSun
Copy link
Author

Hi @adamhsparks, I can't fix this check error: ✖️ Package name is not available (on CRAN).
Because the ILSM on CRAN and this submission here are all my projects

@adamhsparks
Copy link
Member

yes, I'm aware, I checked your README and CRAN. Thanks for clarifying though!

@adamhsparks
Copy link
Member

Hi @WeichengSun, there's a few NOTEs that I've found when I run checks locally, could you please work to address them as I find a handling editor for {ILSM}?

checking top-level files ... NOTE
  Non-standard files/directories found at top level:Contributing.Rmd’ ‘README.Rmd’ ‘codemeta.json’

❯ checking Rd files ... [0s/0s] NOTE
  checkRd: (-3) coid.Rd:32: Lost braces
      32 | \itemize{\item{\code{network.or.subnet_mat1}: input a 'igraph' of network data independently or input sparse matrix together with \code{subnet_mat2}.}}
         |               ^
  checkRd: (-3) coid.Rd:35: Lost braces
      35 | \itemize{\item{\code{network.or.subnet_mat1}: must input matrix(or data.frame) together with \code{subnet_mat2}. the matrix can be sparse matrix and matrix of interaction strength.}}
         |               ^
  checkRd: (-3) coid.Rd:41: Lost braces
      41 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) coid.Rd:42: Lost braces
      42 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) coid.Rd:47: Lost braces
      47 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) coid.Rd:49: Lost braces
      49 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) coid.Rd:51: Lost braces
      51 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) coid.Rd:52: Lost braces
      52 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) coid.Rd:55: Lost braces
      55 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) coid.Rd:57: Lost braces
      57 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) coid.Rd:60: Lost braces
      60 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) cois.Rd:32: Lost braces
      32 | \itemize{\item{\code{network.or.subnet_mat1}: input a 'igraph' of network data independently or input sparse matrix together with \code{subnet_mat2}.}}
         |               ^
  checkRd: (-3) cois.Rd:35: Lost braces
      35 | \itemize{\item{\code{network.or.subnet_mat1}: must input matrix(or data.frame) together with \code{subnet_mat2}. the matrix can be sparse matrix and matrix of interaction strength.}}
         |               ^
  checkRd: (-3) cois.Rd:41: Lost braces
      41 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) cois.Rd:42: Lost braces
      42 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) cois.Rd:47: Lost braces
      47 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) cois.Rd:49: Lost braces
      49 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) cois.Rd:51: Lost braces
      51 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) cois.Rd:52: Lost braces
      52 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) cois.Rd:55: Lost braces
      55 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) cois.Rd:57: Lost braces
      57 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) cois.Rd:60: Lost braces
      60 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) hc.Rd:29: Lost braces
      29 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) hc.Rd:30: Lost braces
      30 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) hc.Rd:35: Lost braces
      35 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) hc.Rd:36: Lost braces
      36 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) hc.Rd:37: Lost braces
      37 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) hc.Rd:38: Lost braces
      38 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) icmotif_count.Rd:31: Lost braces
      31 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) icmotif_count.Rd:32: Lost braces
      32 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) icmotif_count.Rd:37: Lost braces
      37 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) icmotif_count.Rd:39: Lost braces
      39 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) icmotif_count.Rd:41: Lost braces
      41 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) icmotif_count.Rd:42: Lost braces
      42 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) icmotif_count.Rd:45: Lost braces
      45 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) icmotif_count.Rd:47: Lost braces
      47 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) icmotif_count.Rd:50: Lost braces
      50 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) icmotif_role.Rd:31: Lost braces
      31 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) icmotif_role.Rd:32: Lost braces
      32 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) icmotif_role.Rd:37: Lost braces
      37 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) icmotif_role.Rd:39: Lost braces
      39 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) icmotif_role.Rd:41: Lost braces
      41 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) icmotif_role.Rd:42: Lost braces
      42 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) icmotif_role.Rd:45: Lost braces
      45 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) icmotif_role.Rd:47: Lost braces
      47 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) icmotif_role.Rd:50: Lost braces
      50 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:31: Lost braces
      31 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:33: Lost braces
      33 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:35: Lost braces
      35 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:36: Lost braces
      36 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:39: Lost braces
      39 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:41: Lost braces
      41 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) igraph_from_matrices.Rd:44: Lost braces
      44 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) node_cv.Rd:47: Lost braces
      47 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) node_cv.Rd:48: Lost braces
      48 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) node_cv.Rd:53: Lost braces
      53 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) node_cv.Rd:55: Lost braces
      55 | \item{When the two matrices can have different numbers of rows:}
         |      ^
  checkRd: (-3) node_cv.Rd:57: Lost braces
      57 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) node_cv.Rd:58: Lost braces
      58 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) node_cv.Rd:61: Lost braces
      61 | \item{When the two matrices can have the same numbers of rows:}
         |      ^
  checkRd: (-3) node_cv.Rd:63: Lost braces
      63 | \item{No matter how the row names of the two matrices are arranged, as long as the row names are exactly the same; But we don't handle matrices with empty row names (the function will give an error).}
         |      ^
  checkRd: (-3) node_cv.Rd:66: Lost braces
      66 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) node_cv.Rd:34-35: Lost braces
      34 | \item{If \code{type} is either of "degree", "pagerank", "hub", "authority", "katz", "eigenvector", "closeness", the data frame has two columns, and the second column corresponds to either of "Degree", "Pagerank_versatility",
         |      ^
  checkRd: (-3) node_cv.Rd:36-37: Lost braces
      36 | \item{If \code{type} is "all", the data frame has eight columns, and columns form the second to the eighth correspond to "Degree", "Pagerank_versatility",
         |      ^
  checkRd: (-3) null_model.Rd:30: Lost braces
      30 | \item{For each of the four types of null models, there are corresponding algorithms. The first type, “subnetwork1”, involved scrambling the adjacency matrix of the first and second groups of the multilayer network.}
         |      ^
  checkRd: (-3) null_model.Rd:31: Lost braces
      31 | \item{The second type, “subnetwork2”, focused on scrambling the adjacency matrix of the second and third groups. }
         |      ^
  checkRd: (-3) null_model.Rd:32: Lost braces
      32 | \item{Comprehensively, the third type, “all”, blended the approaches of the first two to disarrange the entire network's adjacency matrix, achieving a thorough perturbation of the network's structure. }
         |      ^
  checkRd: (-3) null_model.Rd:33: Lost braces
      33 | \item{The last type namedSavuethat disarranged inherent structure in terms of the groups of species connected by each interconnecting species of every subnetworks, thus exhibiting different interconnection patterns.}}
         |      ^
  checkRd: (-3) pc.Rd:29: Lost braces
      29 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) pc.Rd:30: Lost braces
      30 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) pc.Rd:35: Lost braces
      35 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) pc.Rd:36: Lost braces
      36 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) pc.Rd:37: Lost braces
      37 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) pc.Rd:38: Lost braces
      38 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^
  checkRd: (-3) poc.Rd:29: Lost braces
      29 | \item{(1). Input in a network of type "igraph" alone.}
         |      ^
  checkRd: (-3) poc.Rd:30: Lost braces
      30 | \item{(2). Must be entered as data frame or matrix with \code{subnet_mat2}.}
         |      ^
  checkRd: (-3) poc.Rd:35: Lost braces
      35 | \item{Try to make the rows of both matrices have the same attributes. Or we default:}
         |      ^
  checkRd: (-3) poc.Rd:36: Lost braces
      36 | \item{(1). If both matrices have row names, then the function counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) poc.Rd:37: Lost braces
      37 | \item{(2). If at most one matrix has row names, the function assigns new row names to both matrices on a row-to-row basis (any extra row names are assigned a new value) and then counts all row names to produce two new matrices with the same row names.}
         |      ^
  checkRd: (-3) poc.Rd:38: Lost braces
      38 | \item{The two matrices can have different numbers of rows, but read our default handling carefully to make sure the calculation is accurate when using this function!!!}
         |      ^

0 errors| 0 warnings| 2 notes

@WeichengSun
Copy link
Author

Hi @adamhsparks, thank you, I have addressed these NOTEs, please continue to promote this issue.

@adamhsparks
Copy link
Member

adamhsparks commented Oct 9, 2024

Thanks, @WeichengSun,

  1. I still see an issue with missing braces as shown here:
checking Rd files ... [0s/0s] NOTE checkRd: (-3)
    node_cv.Rd:34-35: Lost braces 34 | \item{If \code{type} is either
    of "degree", "pagerank", "hub", "authority", "katz", "eigenvector",
    "closeness", the data frame has two columns, and the second column
    corresponds to either of "Degree", "Pagerank_versatility", | ^
    checkRd: (-3) node_cv.Rd:36-37: Lost braces 36 | \item{If
    \code{type} is "all", the data frame has eight columns, and columns
    form the second to the eighth correspond to "Degree",
    "Pagerank_versatility", | ^
  1. Some of the other editors have looked over the repository and feel that it doesn't fit the categories you've elected, "Software Wrapper" or "Data Munging" But it does fit a category that we're actively preparing. Can I ask you to hold off on this for a bit? We're still working on a category for network standards where we think that this would fit, dev branch statistical-software-review-book#67. Once that's activated, we'll have a home for this but it will require you to document adherence to the network standards.

@WeichengSun
Copy link
Author

OK @adamhsparks, I will continue to complete the issue, and I also accept your advice to put it on hold. Since this is only a tool for our scientific research, but our research work still needs to continue. Please inform me and provide other relevant requirements after you finish the working on a category for network standards. Thank you.
Mutual encouragement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants