Crate ATriaPlugin

Crate ATriaPlugin 

Source
Expand description

§ATria-rs

Library for the Ablatio Triadum (ATria) centrality algorithm (Cickovski et al, 2015, 2017).

ATria can run on signed and weighted networks and produces a list of central nodes as both screen output and as a NOde Attribute (NOA) file for Cytoscape. The NOA file can subsequently be imported into Cytoscape resulting in centrality values becoming node attributes and enabling further analysis and visualization based on these values.

The input network should be specified in CSV format with nodes as rows and columns and entry (i, j) representing the weight of the edge from node i to node j.

The output is the NOA file, with both centrality value and rank as attributes. Larger magnitude values indicate higher centrality for both centrality and rank. This is typically more convenient for visualization, etc.

§GPU Acceleration

Enable the gpu feature for cross-platform GPU acceleration (Vulkan/Metal/DX12):

[dependencies]
atria-rs = { version = "1.2", features = ["gpu"] }

§CUDA Acceleration

Enable the cuda feature for NVIDIA CUDA acceleration:

[dependencies]
atria-rs = { version = "1.2", features = ["cuda"] }

Then configure the plugin to use the desired backend:

let mut plugin = ATriaPlugin::default();
plugin.set_backend(ComputeBackend::Gpu);   // wgpu
plugin.set_backend(ComputeBackend::Cuda);  // NVIDIA CUDA
plugin.set_backend(ComputeBackend::Auto);  // Best available

Original code for the C++ version of this library may be found here.

Modules§

pluma_ffi

Structs§

ATriaPlugin

Enums§

ComputeBackend
Configuration for compute backend selection

Functions§

cpu_floyd
Modified Floyd-Warshall algorithm for ATria - optimized version Uses unsafe pointer arithmetic to avoid bounds checking in hot loops