The SuiteSparse Matrix Collection Website Interface

The SuiteSparse Matrix Collection Website Interface - Published in JOSS (2019)

https://github.com/scottkolo/suitesparse-matrix-collection-website

Science Score: 95.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 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    3 of 11 committers (27.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

blackhole pde gravitational-lenses meshes polynomial mpi parallel energy-systems multigrid exoplanets
Last synced: 6 months ago · JSON representation

Repository

A web interface for the SuiteSparse Matrix Collection, formerly known as the University of Florida Sparse Matrix Collection

Basic Info
  • Host: GitHub
  • Owner: ScottKolo
  • License: mit
  • Language: Ruby
  • Default Branch: master
  • Homepage:
  • Size: 341 MB
Statistics
  • Stars: 24
  • Watchers: 9
  • Forks: 7
  • Open Issues: 8
  • Releases: 7
Created over 10 years ago · Last pushed 9 months ago
Metadata Files
Readme License Codemeta

README.md

SuiteSparse Matrix Collection

Build Status Code Climate Test Coverage Issue Count status

A web interface for the SuiteSparse Matrix Collection, formerly known as the University of Florida Sparse Matrix Collection. It is currently deployed at https://sparse.tamu.edu.

Features and Functionality

The SuiteSparse Matrix Collection web application provides a variety of features to help the scientific computing community access the Collection more easily.

Matrix Property Search, Sorting, and Filtering

The SuiteSparse Matrix Collection web application allows real-time filtering by the following matrix properties:

Matrix Size and Shape

  • Rows - The number of rows in the matrix.
  • Columns - The number of columns in the matrix.
  • Nonzeros - The number of nonzero entries in the matrix.

Matrix Structure and Entry Type

  • Pattern symmetry - The percent of entries that are mirrored across the matrix diagonal. The numeric value of the entries is irrelevant.
  • Numerical symmetry - The percent of entries that are mirrored across the matrix diagonal with the identical numeric value.
  • Number of strongly connected components - The number of strongly connected components present in the resulting graph of this sparse matrix.
  • Rutherford-Boeing type - The type of entry in the sparse matrix. One of either Real, Complex, Integer, or Binary.
  • Structure - Special matrix structure, including square, rectangular, symmetric, skew-symmetric, Hermitian, and unsymmetric.
  • Positive definiteness

Matrix Metadata

  • Matrix name - The specific name of the matrix.
  • Matrix group - The group name the matrix belongs to.
  • Matrix ID - The numeric identification number of the matrix.
  • Matrix Year - The year the matrix was added to the Collection.

Additionally, matrix details are displayed on each matrix's individual page, including the matrix's rank, condition number, and information regarding its singular value decomposition. A variety of visualizations are also presented, including sparsity patterns, force-directed graph (or bipartite graph) visualizations (courtesy of Yifan Hu), Dulmage-Mendelsohn permuted sparsity patterns, and singular values plotted in decreasing size.

Quick Access via URL Routing

Matrices can also be quickly accessed by URL route matching using the following URL routes:

Other Interfaces to the Collection

For more information about interfaces to the Collection, see the Interfaces page.

Bugs and Feature Requests

Find a problem with the website? Report it as an Issue, or suggest a fix via a Pull Request.

Building Locally

While the canonical deployment can be found at https://sparse.tamu.edu, you may wish to deploy a version of the SuiteSparse Matrix Collection website locally for testing or convenience.

The only dependencies for running the application are listed below. They can be installed using your package manager (like apt-get or yum for Linux or brew for macOS):

  • Ruby 2.7.1 or later
  • PostgreSQL 9.3 or later (and permissions to create a database)
  • A JavaScript runtime environment such as node.js 12.17.0 or later

Many operating systems come with Ruby installed, and you can check which version you have with ruby -v. If no Ruby installation is found, or the version is incorrect, you can use your package manager to install a compatible version (see ruby-lang.org for more information regarding obtaining and installing Ruby). You may also find Ruby Version Manager (rvm.io) to be helpful if you need to maintain multiple versions of Ruby.

Installing PostgreSQL and node.js also varies greatly from system to system. For example, to install PostgreSQL and node.js (required by Rails) on Ubuntu 18, you can use the following commands: shell sudo apt install postgresql postgresql-contrib libpq-dev nodejs sudo -u postgres createuser -s $(whoami); createdb $(whoami)

Note that after installing PostgreSQL, one needs to start it up so it is running in the background. The status can be checked using pg_isready. If this fails, the installation can be started manually, e.g. via pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start, depending on the location of your installation. If PostgreSQL was installed from a package manager, post-install information is usually displayed about how to start the PostgreSQL daemon on your platform.

For running the test suite, the following additional dependencies are required:

  • Firefox 46 or later

The application is a standard Ruby on Rails web application, and can be installed with the following commands:

shell ruby -v # Check that Ruby 2.7.1+ is installed pg_isready # Check that PostgreSQL database is ready git clone https://github.com/ScottKolo/suitesparse-matrix-collection-website.git cd suitesparse-matrix-collection-website gem install bundler # Dependency manager bundle config set without 'development test' bundle install # Download and install dependencies bundle exec rails db:setup # Generate and seed the database bundle exec rails server # Start the Ruby on Rails server application

Once the Rails server starts, you can navigate in a web browser to localhost:3000 to view the web application running locally.

Test Suite

After building and running the application locally, you can run the test suite by running

shell bundle exec rake

This will run a variety of Cucumber, rspec, and Brakeman tests that ensure the backend and user interface frontend function correctly, and that no (obvious) security issues exist. It will also report test coverage, with a detailed report generated in the /coverage directory.

Acknowledgements

This website was originally part of a Software Engineering course project. The original team members are listed below:

We would also like to thank Dr. Jeff Huang, who taught that Software Enigneering course and impressed upon us the importance of software engineering practices, such as test-driven development and Agile.

We also owe a significant debt to Dr. Tim Davis for his input and guidance, as well as for creating many of the tools (and the original website) that made this project possible.

License

Overview: This website software (except for ssget) is under the MIT License. The matrices themselves are under the CC-BY 4.0 License.

ssget (available in SuiteSparse/ssget in the ssget folder is under the BSD 3-clause License.

The matrices themselves are under the CC-BY 4.0 license. Note that this license asks you to cite the source of the matrices. That citation can be made to these references:

  • Kolodziej et al., (2019). The SuiteSparse Matrix Collection Website Interface. Journal of Open Source Software, 4(35), 1244, DOI

  • Timothy A. Davis and Yifan Hu. 2011. The University of Florida sparse matrix collection. ACM Trans. Math. Softw. 38, 1, Article 1 (November 2011), 25 pages. DOI

You should also preserve the metadata in the matrices themselves, which includes additional citations for specific matrices. For example, the LAW set of matrices (from the Laboratory for Web Algorithmics, Universita degli Studi di Milano) includes specific instructions on how to properly cite the matrices. See sparse.tamu.edu/LAW for details. For the Matrix Market format, most of the metadata appears in the header of the *.mtx themselves.

Ideally, if you redistribute the matrices in your own applications, you should not change them at all. This is essential for repeatability of experiments that rely on these matrices. Modification is permitted under the CC-BY 4.0 License, but that license requires you to state the modifications you make. If you make any such modifications, please change the filename and matrix name to indicate that it differs from the copy of the matrix from sparse.tamu.edu. Carefully describe any modifications you make.

Last update: May 20, 2025.

Owner

  • Name: Scott Kolodziej
  • Login: ScottKolo
  • Kind: user
  • Location: Cypress, TX

JOSS Publication

The SuiteSparse Matrix Collection Website Interface
Published
March 10, 2019
Volume 4, Issue 35, Page 1244
Authors
Scott P. Kolodziej ORCID
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Mohsen Aznaveh ORCID
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Matthew Bullock
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Jarrett David ORCID
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Timothy A. Davis ORCID
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Matthew Henderson
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Yifan Hu ORCID
Yahoo Research, New York, NY
Read Sandstrom ORCID
Texas A&M University, Department of Computer Science & Engineering, College Station, TX
Editor
Jed Brown ORCID
Tags
data repository sparse matrices website web application

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "SuiteSparse Matrix Collection Website",
  "description": "A web interface for the SuiteSparse Matrix Collection",
  "name": "SuiteSparse Matrix Collection Website",
  "codeRepository": "https://github.com/ScottKolo/suitesparse-matrix-collection-website",
  "issueTracker": "https://github.com/ScottKolo/suitesparse-matrix-collection-website/issues",
  "license": "https://spdx.org/licenses/MIT.html",
  "author": [
    {
      "@type": "Person",
      "givenName": "Scott",
      "familyName": "Kolodziej",
      "email": "scottk@tamu.edu",
      "@id": "https://orcid.org/0000-0001-8340-0824",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Mohsen",
      "familyName": "Aznaveh",
      "email": "aznaveh@tamu.edu",
      "@id": "https://orcid.org/0000-0003-4860-4762",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Matthew",
      "familyName": "Bullock",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Jarrett",
      "familyName": "David",
      "@id": "https://orcid.org/0000-0002-1491-0393",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Timothy",
      "familyName": "Davis",
      "email": "davis@tamu.edu",
      "@id": "https://orcid.org/0000-0001-7614-6899",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Matthew",
      "familyName": "Henderson",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Yifan",
      "familyName": "Hu",
      "email": "yifanhu@yahoo.com",
      "@id": "https://orcid.org/0000-0003-2017-924X",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Read",
      "familyName": "Sandström",
      "email": "davis@tamu.edu",
      "@id": "https://orcid.org/0000-0001-9205-1523",
      "affiliation": "Texas A&M University"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Scott",
      "familyName": "Kolodziej",
      "email": "scottk@tamu.edu",
      "@id": "https://orcid.org/0000-0001-8340-0824",
      "affiliation": "Texas A&M University"
    },
    {
      "@type": "Person",
      "givenName": "Timothy",
      "familyName": "Davis",
      "email": "davis@tamu.edu",
      "@id": "https://orcid.org/0000-0001-7614-6899",
      "affiliation": "Texas A&M University"
    }
  ],
  "contIntegration": "https://semaphoreci.com/scottkolo/ufsmc-web",
  "developmentStatus": "active",
  "downloadUrl": "https://github.com/ScottKolo/suitesparse-matrix-collection-website/archive/master.zip",
  "keywords": [
    "sparse matrices",
    "data repository",
    "software",
    "web application",
    "website"
  ],
  "dateCreated": "2015-09-08",
  "datePublished": "2015-09-08",
  "dateModified": "2018-11-18",
  "programmingLanguage": "JavaScript"
}

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 1
  • Pull request event: 7
  • Fork event: 1
  • Create event: 6
Last Year
  • Issues event: 2
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 2
  • Push event: 1
  • Pull request event: 7
  • Fork event: 1
  • Create event: 6

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 694
  • Total Committers: 11
  • Avg Commits per committer: 63.091
  • Development Distribution Score (DDS): 0.249
Past Year
  • Commits: 11
  • Committers: 3
  • Avg Commits per committer: 3.667
  • Development Distribution Score (DDS): 0.364
Top Committers
Name Email Commits
Scott Kolodziej s****j@g****m 521
dependabot[bot] 4****] 47
readamus r****s@c****u 41
senseinobu m****a@g****m 35
Tim Davis D****s@g****m 25
Matthew Henderson m****n@t****u 10
Jarrett j****1@t****u 6
Aznaveh m****n@g****m 5
saasbook s****k@s****) 2
Jed Brown j****d@j****g 1
Arfon Smith a****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 12
  • Total pull requests: 72
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 11
  • Total pull request authors: 4
  • Average comments per issue: 2.25
  • Average comments per pull request: 0.24
  • Merged pull requests: 50
  • Bot issues: 0
  • Bot pull requests: 69
Past Year
  • Issues: 1
  • Pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: 20 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.3
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 9
Top Authors
Issue Authors
  • Aznaveh (2)
  • cwpearson (1)
  • amontoison (1)
  • gajanan-choudhary (1)
  • bonachea (1)
  • KGHustad (1)
  • dependabot[bot] (1)
  • plavin (1)
  • tkonolige (1)
  • dpo (1)
  • ScottKolo (1)
  • NicholasKiefer (1)
Pull Request Authors
  • dependabot[bot] (81)
  • DrTimothyAldenDavis (2)
  • jedbrown (1)
  • arfon (1)
Top Labels
Issue Labels
dependencies (1) ruby (1)
Pull Request Labels
dependencies (81) ruby (55) javascript (17)

Dependencies

Gemfile rubygems
  • brakeman >= 0 development
  • byebug >= 0 development
  • capybara >= 0 development
  • cucumber-rails >= 0 development
  • database_cleaner >= 0 development
  • factory_bot >= 0 development
  • launchy >= 0 development
  • libv8-node >= 0 development
  • listen ~> 3.3 development
  • loofah >= 2.2.3 development
  • nokogiri ~> 1.13.2 development
  • pg >= 0 development
  • puma >= 0 development
  • rails-controller-testing >= 0 development
  • rspec-rails ~> 4.0.0 development
  • selenium-webdriver >= 0 development
  • simplecov = 0.17.1 development
  • spring >= 0 development
  • sq_mini_racer >= 0 development
  • web-console ~> 4.1 development
  • webdrivers ~> 4.4.1 development
  • bcrypt ~> 3.1.7
  • bootstrap ~> 4.4.1
  • filterrific ~> 5.2.1
  • font_awesome5_rails >= 0
  • haml ~> 5.0
  • haml-contrib ~> 1.0.0.1
  • haml-rails >= 0
  • jbuilder ~> 2.0
  • jquery-rails ~> 4.3.3
  • js_cookie_rails >= 0
  • json ~> 2.3.0
  • mailgun_rails >= 0
  • rails ~> 6.1.4
  • rails_12factor >= 0
  • recaptcha >= 0
  • rexml >= 0
  • sassc >= 0
  • sitemap_generator >= 0
  • turbolinks ~> 5.1.0
  • uglifier >= 1.3.0
  • webpacker >= 0
  • will_paginate ~> 3.3.0
  • will_paginate-bootstrap4 >= 0
Gemfile.lock rubygems
  • 138 dependencies