A comprehensive toolkit for DNA sequence Adversarial Attack and Defense Benchmark.
You can install GenoArmory using pip:
pip install genoarmory
You can also install package from our source code:
git clone https://github.com/MAGICS-LAB/GenoArmory.git
conda create -n genoarmory pip=3.9
pip install .# Initialize model from GenoArmory import GenoArmory import json # You need to initialize GenoArmory with a model and tokenizer. # For visualization, you don't need a real model/tokenizer, so you can use None if the method doesn't use them. gen = GenoArmory(model=None, tokenizer=None) params_file = '/projects/p32013/DNABERT-meta/scripts/PGD/pgd_dnabert.json' # Visulization gen.visualization( folder_path='/projects/p32013/DNABERT-meta/BERT-Attack/results/meta/test', output_pdf_path='/projects/p32013/DNABERT-meta/BERT-Attack/results/meta/test' ) # Attack if params_file: try: with open(params_file, "r") as f: kwargs = json.load(f) except json.JSONDecodeError as e: raise ValueError(f"Invalid JSON in params file '{params_file}': {e}") except FileNotFoundError: raise FileNotFoundError(f"Params file '{params_file}' not found.") gen.attack( attack_method='pgd', model_path='magicslabnu/GERM', **kwargs )
GenoArmory can also be used from the command line:
# Attack python GenoArmory.py --model_path magicslabnu/GERM attack --method pgd --params_file /projects/p32013/DNABERT-meta/scripts/PGD/pgd_dnabert.json # Defense python GenoArmory.py --model_path magicslabnu/GERM defense --method at --params_file /projects/p32013/DNABERT-meta/scripts/AT/at_pgd_dnabert.json # Visualization python GenoArmory.py --model_path magicslabnu/GERM visualize --folder_path /projects/p32013/DNABERT-meta/BERT-Attack/results/meta/test --save_path /projects/p32013/DNABERT-meta/BERT-Attack/results/meta/test/frequency.pdf # Read MetaData python GenoArmory.py --model_path magicslabnu/GERM read --type attack --method TextFooler --model_name dnabert
-
Multiple attack methods:
- BERT-Attack
- TextFooler
- PGD
- FIMBA
-
Defense methods:
- ADFAR
- FreeLB
- Traditional Adversarial Training
-
Visualization tools
-
Artifact management
-
Batch processing
-
Command-line interface
For detailed documentation, visit [docs](We will release soon).
This project is licensed under the MIT License.
If you have any question regarding our paper or codes, please feel free to start an issue.
If you use GenoArmory in your work, please kindly cite our paper:
@misc{luo2025genoarmoryunifiedevaluationframework,
title={GenoArmory: A Unified Evaluation Framework for Adversarial Attacks on Genomic Foundation Models},
author={Haozheng Luo and Chenghao Qiu and Yimin Wang and Shang Wu and Jiahao Yu and Han Liu and Binghui Wang and Yan Chen},
year={2025},
eprint={2505.10983},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2505.10983},
}