Skip to content
quinnjrPublic

About

Java PluMA plugin implementing the ATria centrality algorithm for microbial networks

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ATriaJava

Java implementation of the Ablatio Triadum (ATria) centrality algorithm for PluMA.

Based on the original C++ implementation by movingpictures83/ATria and the algorithm described in Cickovski et al, 2015, 2017.

Description

ATria (Ablatio Triadum) is a centrality algorithm for analyzing microbial interaction networks. It identifies the most central nodes in a network by iteratively:

  1. Computing shortest paths using a modified Floyd-Warshall algorithm
  2. Calculating payoff scores for each node
  3. Removing triads associated with the highest-scoring node
  4. Repeating until all nodes are ranked

Input Format

CSV format with nodes as rows and columns, where entry (i,j) represents the weight of the edge from node i to node j.

Example:

"","NodeA","NodeB","NodeC"
"NodeA",1,0.8,-0.5
"NodeB",0.8,1,0.6
"NodeC",-0.5,0.6,1

Output Format

Tab-separated file with columns: Name, Centrality, Rank

Building

With SCons

scons

Manual compilation

javac ATriaJavaPlugin.java

Testing

Run the unit tests:

javac -cp . ATriaJavaPluginTest.java
java -cp . ATriaJavaPluginTest

Usage with PluMA

  1. Place the plugin in PluMA's plugins/ directory
  2. Create a config file:
Prefix plugins/ATriaJava/example/
Plugin ATriaJava inputfile corrP.never.csv outputfile output.noa
  1. Run PluMA:
./pluma config.txt

Performance

The plugin is optimized for performance with:

  • Precomputed row offsets for array indexing
  • Early termination in Floyd-Warshall for zero paths
  • Bitwise operations for even/odd checks
  • Loop hoisting and reduced bounds checking

Typical execution time: ~9ms for a 126-node network.

License

MIT License

References

  • Cickovski, T., & Narasimhan, G. (2018). Constructing Lightweight and Flexible Pipelines Using Plugin-Based Microbiome Analysis (PluMA). Bioinformatics, 34(17), 2881-2888.

About

Java PluMA plugin implementing the ATria centrality algorithm for microbial networks

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages