Skip to main content
Image

A comprehensive toolkit for DNA sequence Adversarial Attack and Defense Benchmark.

arXiv Github Hugging Face Pretrained Hugging Face Dataset

Installation

You can install GenoArmory using pip:

pip install genoarmory

Quick Start

# 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
)

Command Line Usage

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

Features

  • Multiple attack methods:

    • BERT-Attack
    • TextFooler
    • PGD
    • FIMBA
  • Defense methods:

    • ADFAR
    • FreeLB
    • Traditional Adversarial Training
  • Visualization tools

  • Artifact management

  • Batch processing

  • Command-line interface

Documentation

For detailed documentation, visit [docs](We will release soon).

License

This project is licensed under the MIT License.

Citation

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:


Release files for genoarmory 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for genoarmory 0.1.0
File Size Uploaded
genoarmory-0.1.0.tar.gz 3.8 kB Details

Release files / genoarmory-0.1.0.tar.gz

Download URL genoarmory-0.1.0.tar.gz
Size 3.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8afb8fda31ee3e924f7ab9908fbc66dc5d156d06fca3c437ad976337951e2073
BLAKE2b-256 checksum
How to use checksums
7a24f3a4bbac0833b88b65a4aa5c4757f65909bd9a991d8468898bf87840c79a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.20

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page