CNATool - Complex Network Analysis Tool

CNATool - Complex Network Analysis Tool - Published in JOSS (2023)

https://github.com/souzamonteiro/cnatool

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

Complex Network Analysis Tool

Basic Info
  • Host: GitHub
  • Owner: souzamonteiro
  • License: apache-2.0
  • Language: JavaScript
  • Default Branch: main
  • Size: 19.5 MB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 3
  • Open Issues: 0
  • Releases: 4
Created over 5 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

CNATool (Complex Network Analysis Tool)

Copyright (C) 2020,2021 Roberto Luiz Souza Monteiro, Renata Souza Barreto, Hernane Borges de Barros Pereira.

The software is provided under the terms of the Apache License, version 2.0, but some modules provided by third parties may be under different licenses.

Please read the file LICENSE for further information.

The CNATool tool was developed, using the MaiaScript programming language, to allow quick and simplified analysis of graphs of complex networks, from any device connected to the Internet.

The complete documentation, including the EBNF grammar file and the compiler's syntax diagrams (railroad diagrams), for MaiaScript, can be found in the grammar directory.

For more information send mail to: mailto:support@maiascript.com

Currently the tool allows:

  • Display network graph;
  • Layout graph;
  • Calculat basic properties: Average Grade, Density, Average Clustering - Coefficient, Average Shortest Path, Diameter and Graph Efficiency;
  • Display detailed properties of the vertices: Degrees, Clustering, Centrality;
  • Save graph in Pajek format;
  • Export graph in SVG format;
  • Save a summary of graph’s properties in HTML format;
  • Use the GPU when available.

To use the online tool, access:

[http://www.maiascript.com/cnatool]

DEPENDENCIES

The program depends on the following packages: - algebrite Install using the command: npm install -g algebrite - web-worker Install using the command: npm install -g web-worker - cross-blob Install using the command: npm install -g cross-blob - gpu.js Install using the command: npm install -g gpu.js

INSTALL COMMAND LINE INTERFACE (CLI):

To install the CNATool command line tool use the command:

npm install -g cnatool

Or, get it from GitHub:

git clone https://github.com/souzamonteiro/cnatool.git

Or, download the latest zipped version:

unzip cnatool-main.zip

cd cnatool-main

npm install -g .

PROBLEMS WHEN INSTALLING USING NPM

Some packages may not be compatible with some Linux distributions or Windows. In these cases, download the program via gitgub, unzip the file and double-click on the index.html file. The GUI will run. It has been tested on Windows, Linux, macOS, iOS and Android using Google Chrome.

RUN TESTS:

To run the test scripts execute:

./test.sh

Please, any testing or development must be carried out in a UNIX environment and if you want to do this in Windows, you must install Cygwin or MSYS. These tools provide a complete UNIX environment on Windows and can be obtained from [https://www.cygwin.com] and [https://www.msys2.org] respectively. Explanations on how to install and use the programs provided with them can be found on their websites.

To facilitate testing in a Windows environment, a script for PowerShell test.cmd is provided, but it is preferable to test this software using the environments provided by Cygwin or MSYS.

To run the tests on Windows, open a command prompt, move to the directory where you unzipped this program and run:

test.cmd

USING THE COMMAND LINE INTERFACE (CLI) AND CNATool:

To run the command line tool, use the command:

cnatool [options] [network.net] [--] [arguments]

To see the command line tool options run the command:

cnatool --help

To launch CNATool open the file index.html, in the main directory of the package, in a browser.

To try CNATool on-line go to [http://www.maiascript.com/cnatool]

USING THE SAMPLE FILES

Use the example network files to practice using the command line tool as well as the GUI. They were created by the author and are available under the same license as the program.

Neural Network of C. elegans

The examples/c_elegans_neural_network.net file contains a neural network representation of the C. elegans worm. This network was created for my doctoral thesis and I distribute it here because it is a network with hybrid characteristics (small world and free of scale).

To calculate the parameters of this network, execute the following command, from inside the directory where you unzipped this program:

./bin/cnatool.js --all examples/c_elegans_neural_network.net

Semantic Network

The semantic.txt file contains the original text used to create the semantic.dlf file, which was manually created from the text file. The DLF file can be used to create a semantic network using the following command:

./bin/cnatool.js --build --weighted --directed --loops --topology chain examples/semantic.dlf

./bin/cnatool.js --export --directed examples/semantic-net.json

This will create the semantic-net.json file.

To calculate the parameters of the semantic network created, use the command:

./bin/cnatool.js --all examples/semantic-net.json

This will create the semantic-net.html file containing the calculated data.

Complete, Random, Scale-Free, Small World, and Hybrid Networks

In the examples directory there are artificial networks with Complete, Random, Scale-Free, Small World and Hybrid topologies, created using CNATOOL.

To recreate this networks, use the commands:

./bin/cnatool.js --create --topology complete --vertices 50 --avgdeg 3 --prefix examples/complete

./bin/cnatool.js --create --topology random --vertices 50 --avgdeg 3 --prefix examples/random

./bin/cnatool.js --create --topology scalefree --vertices 50 --avgdeg 3 --probability 0.3 --prefix examples/scalefree

./bin/cnatool.js --create --topology smallworld --vertices 50 --avgdeg 3 --probability 0.3 --prefix examples/smallworld

./bin/cnatool.js --create --topology hybrid --vertices 50 --avgdeg 3 --probability 0.3 --prefix examples/hybrid

The files complete-1.net, random-1.net, scalefree-1.net, smallworld-1.net and hybrid-1.net will be created.

You can use these files to test the program's graphical interface. For information on how to open files and view them in the graphical interface, consult the program's manual, in the manual folder.

CONTRIBUTORS

Contributions are always appreciated. You can contribute with code improvements, documentation improvements, implementation of new features or testing programs and sending us a report with the results you get.

To contribute to this project, please clone the repository on github, make the changes, and send the link to your repository containing your contributions to support@maiascript.com.

LICENSE

Copyright 2020,2021 Roberto Luiz Souza Monteiro, Renata Souza Barreto, Hernane Borges de Barros Pereira.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Lauro de Freitas, August 2023.

Roberto Luiz Souza Monteiro

Owner

  • Name: Roberto Luiz Souza Monteiro
  • Login: souzamonteiro
  • Kind: user
  • Location: Lauro de Freitas
  • Company: Universidade do Estado da Bahia

Roberto Luiz Souza Monteiro has a postdoctoral degree in Computational Modeling and Industrial Technology and a doctorate in Knowledge Dissemination.

JOSS Publication

CNATool - Complex Network Analysis Tool
Published
August 04, 2023
Volume 8, Issue 88, Page 5373
Authors
Roberto Luiz Souza Monteiro ORCID
SENAI CIMATEC University Center, Brasil \newline, Universidade do Estado da Bahia, Brasil \newline
Renata Souza Freitas Dantas Barreto ORCID
Universidade do Estado da Bahia, Brasil \newline
Andréia Rita da Silva ORCID
Universidade do Estado da Bahia, Brasil \newline
Alexandre do Nascimento Silva ORCID
Universidade do Estado da Bahia, Brasil \newline, Universidade Estadual de Santa Cruz, Brasil \newline
José Roberto Araújo de Fontoura ORCID
Universidade do Estado da Bahia, Brasil \newline
Marcos Batista Figueredo ORCID
Universidade do Estado da Bahia, Brasil \newline
Hernane Borges Barros de Pereira ORCID
SENAI CIMATEC University Center, Brasil \newline, Universidade do Estado da Bahia, Brasil \newline
Editor
Charlotte Soneson ORCID
Tags
CNATool complex network analysis graph network degree clustering centrality Pajek

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 134
  • Total Committers: 3
  • Avg Commits per committer: 44.667
  • Development Distribution Score (DDS): 0.067
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Roberto Luiz Souza Monteiro r****o@s****m 125
Coder c****r@m****m 8
Desenvolvedor c****r@w****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 0
  • Average time to close issues: about 2 months
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tomalrussell (4)
  • ati-ozgur (2)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • npm 95 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 61
  • Total maintainers: 1
npmjs.org: cnatool

Complex Network Analysis Tool.

  • Versions: 61
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 95 Last month
Rankings
Forks count: 12.3%
Downloads: 14.3%
Dependent packages count: 16.2%
Average: 17.4%
Stargazers count: 18.8%
Dependent repos count: 25.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package-lock.json npm
  • @babel/parser 7.17.3
  • @tootallnate/once 1.1.2
  • @types/linkify-it 3.0.2
  • @types/markdown-it 12.2.3
  • @types/mdurl 1.0.2
  • abab 2.0.5
  • acorn 8.7.0
  • acorn 7.4.1
  • acorn-globals 6.0.0
  • acorn-walk 7.2.0
  • agent-base 6.0.2
  • argparse 2.0.1
  • asynckit 0.4.0
  • balanced-match 1.0.2
  • bluebird 3.7.2
  • brace-expansion 1.1.11
  • browser-process-hrtime 1.0.0
  • catharsis 0.9.0
  • combined-stream 1.0.8
  • concat-map 0.0.1
  • cssom 0.4.4
  • cssom 0.3.8
  • cssstyle 2.3.0
  • data-urls 2.0.0
  • debug 4.3.3
  • decimal.js 10.3.1
  • deep-is 0.1.4
  • delayed-stream 1.0.0
  • domexception 2.0.1
  • entities 2.1.0
  • escape-string-regexp 2.0.0
  • escodegen 2.0.0
  • esprima 4.0.1
  • estraverse 5.3.0
  • esutils 2.0.3
  • fast-levenshtein 2.0.6
  • form-data 3.0.1
  • fs.realpath 1.0.0
  • glob 7.2.0
  • html-encoding-sniffer 2.0.1
  • http-proxy-agent 4.0.1
  • https-proxy-agent 5.0.0
  • iconv-lite 0.4.24
  • inflight 1.0.6
  • inherits 2.0.4
  • is-potential-custom-element-name 1.0.1
  • js2xmlparser 4.0.2
  • jsdoc 3.6.10
  • jsdom 16.7.0
  • klaw 4.0.1
  • levn 0.3.0
  • linkify-it 3.0.3
  • lodash 4.17.21
  • markdown-it 12.3.2
  • markdown-it-anchor 8.4.1
  • marked 4.0.12
  • mdurl 1.0.1
  • mime-db 1.52.0
  • mime-types 2.1.35
  • minimatch 3.1.2
  • mkdirp 1.0.4
  • ms 2.1.2
  • nwsapi 2.2.0
  • once 1.4.0
  • optionator 0.8.3
  • parse5 6.0.1
  • path-is-absolute 1.0.1
  • prelude-ls 1.1.2
  • psl 1.8.0
  • punycode 2.1.1
  • requizzle 0.2.3
  • safer-buffer 2.1.2
  • saxes 5.0.1
  • source-map 0.6.1
  • strip-json-comments 3.1.1
  • symbol-tree 3.2.4
  • taffydb 2.6.2
  • tough-cookie 4.0.0
  • tr46 2.1.0
  • type-check 0.3.2
  • uc.micro 1.0.6
  • underscore 1.13.2
  • universalify 0.1.2
  • w3c-hr-time 1.0.2
  • w3c-xmlserializer 2.0.0
  • webidl-conversions 5.0.0
  • webidl-conversions 6.1.0
  • whatwg-encoding 1.0.5
  • whatwg-mimetype 2.3.0
  • whatwg-url 8.7.0
  • word-wrap 1.2.3
  • wrappy 1.0.2
  • ws 7.5.7
  • xml-name-validator 3.0.0
  • xmlchars 2.2.0
  • xmlcreate 2.0.4
package.json npm
  • glob ^7.1.6
  • jsdoc ^3.6.10
  • jsdom ^16.2.2
.github/workflows/draft-pdf.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
maia/cna/package.json npm
maia/snet/package.json npm