CNATool - Complex Network Analysis Tool
CNATool - Complex Network Analysis Tool - Published in JOSS (2023)
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
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
Metadata Files
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
- Website: www.souzamonteiro.com
- Repositories: 11
- Profile: https://github.com/souzamonteiro
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
Authors
SENAI CIMATEC University Center, Brasil \newline, Universidade do Estado da Bahia, Brasil \newline
Tags
CNATool complex network analysis graph network degree clustering centrality PajekGitHub Events
Total
- Push event: 1
Last Year
- Push event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | 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.
- Homepage: https://www.maiascript.com
- License: Apache-2.0
-
Latest release: 2.1.5
published over 2 years ago
Rankings
Maintainers (1)
Dependencies
- @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
- glob ^7.1.6
- jsdoc ^3.6.10
- jsdom ^16.2.2
- actions/checkout v2 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite