Exclusive WSSEF Preview:  Transformer Architecture in Epigenomics! Explore Now

Documentation

Introduction to DNAnalyzer

DNAnalyzer is a powerful, privacy-focused DNA analysis tool using advanced machine learning models for accurate, on-device genomic analysis.

This documentation will guide you through the installation, setup, and usage of DNAnalyzer for various DNA analysis tasks. Whether you're a researcher, educator, or bioinformatics enthusiast, you'll find comprehensive information on all of DNAnalyzer's capabilities.

Key Features

  • Privacy-First Analysis: All processing occurs on your device, ensuring your genetic data never leaves your system.
  • Machine Learning Powered: Advanced ML algorithms provide exceptional accuracy in sequence analysis.
  • Comprehensive Tools: From basic sequence statistics to advanced protein prediction and promoter detection.
  • Open Source: DNAnalyzer is completely open source under the MIT License.

System Requirements

Before getting started, ensure your system meets the following requirements:

System Requirements
- Operating System: Windows 10+, macOS 10.14+, or Linux (Ubuntu 18.04+)
- Memory: 2GB RAM minimum (4GB+ recommended for large sequences)
- Storage: 200MB for application, additional space for sequence files
- Browser: Chrome 80+, Firefox 75+, Safari 13+, Edge 80+ (for web interface)
- Java Runtime: Java 17+ (for server mode)

Installation

DNAnalyzer can be installed and used in multiple ways depending on your needs and technical preferences.

Web Interface (No Installation)

The simplest way to use DNAnalyzer is through our web interface, which requires no installation:

  1. Visit DNAnalyzer Web App
  2. Upload your DNA sequence files
  3. Select analysis options and get results

The web interface runs entirely in your browser, ensuring your data never leaves your device.

Local Server Installation

For more advanced usage or batch processing, you can install DNAnalyzer as a local server:

  1. Download the latest DNAnalyzer release for Windows
  2. Extract the ZIP file to your preferred location
  3. Ensure Java 17 or newer is installed on your system
  4. Double-click on dnanalyzer.bat to start the server
  5. Access the interface at http://localhost:8080 in your browser
  1. Download the latest DNAnalyzer release for macOS
  2. Extract the ZIP file to your preferred location
  3. Ensure Java 17 or newer is installed on your system
  4. Open Terminal and navigate to the extracted folder
  5. Run chmod +x dnanalyzer.sh to make the script executable
  6. Execute ./dnanalyzer.sh to start the server
  7. Access the interface at http://localhost:8080 in your browser
  1. Download the latest DNAnalyzer release for Linux
  2. Extract the archive to your preferred location
  3. Ensure Java 17 or newer is installed on your system
  4. Open Terminal and navigate to the extracted folder
  5. Run chmod +x dnanalyzer.sh to make the script executable
  6. Execute ./dnanalyzer.sh to start the server
  7. Access the interface at http://localhost:8080 in your browser

Building from Source

For developers or those who want the latest features, you can build DNAnalyzer from source:

Building from Source
# Clone the repository
git clone https://github.com/VerisimilitudeX/DNAnalyzer.git
cd DNAnalyzer

# Make the Gradle wrapper executable
chmod +x ./gradlew

# Build the project
./gradlew clean bootJar

# Run the server
java -jar build/libs/DNAnalyzer.jar

Quick Start Guide

This guide will help you quickly get started with DNAnalyzer's basic features.

Analyzing Your First DNA Sequence

Follow these steps to perform your first DNA sequence analysis:

1

Upload a Sequence

Navigate to the DNA Analyzer page and upload your FASTA or FASTQ file by dragging it to the upload area or clicking to browse.

Don't have a sequence file? Click "Import Sample" to use a pre-loaded sample sequence.

2

Select Analysis Options

Choose which analysis features you want to run:

  • Basic Analysis: Sequence length, GC content, base composition
  • Codon Analysis: Start codons, stop codons, reading frames
  • Advanced Features: Coverage analysis, protein prediction, promoter detection
3

Run Analysis

Click the "Start Analysis" button to process your sequence. The analysis time depends on the sequence length and selected options.

4

Review Results

Examine the analysis results, which include visualizations, statistics, and detailed information about your sequence.

You can export the results in JSON, CSV, or text format for further processing or documentation.

Pro Tip

For large sequences (>1MB), consider using the local server installation for better performance and additional analysis options.

Sequence Analysis

DNAnalyzer provides comprehensive tools to analyze the basic properties of DNA sequences.

Base Composition Analysis

One of the fundamental analyses is determining the nucleotide composition of your DNA sequence:

  • Nucleotide Counts: Total count of A, T, G, C, and any other bases (N) in the sequence
  • Percentage Distribution: Proportion of each nucleotide type
  • Visualization: Interactive bar chart showing the distribution

GC Content Analysis

GC content is the percentage of nitrogenous bases in a DNA molecule that are either guanine (G) or cytosine (C):

GC Content Formula
GC Content (%) = (G + C) / (A + T + G + C) × 100

GC content is important because:

  • It affects DNA stability (higher GC content = more stable)
  • GC-rich regions often indicate regulatory elements and gene-dense areas
  • Different organisms have characteristic GC content ranges

Interpreting GC Content

  • Low GC (< 40%): Common in AT-rich genomes like certain bacteria
  • Medium GC (40-60%): Typical of many eukaryotic genomes, including humans
  • High GC (> 60%): Often found in gene-rich regions and certain prokaryotes

API Reference

DNAnalyzer provides a RESTful API when running in server mode, allowing programmatic access to all analysis features.

API Endpoints

The following endpoints are available when the server is running:

GET
/api/v1/status

Check server status and version information

Response

{
  "status": "running",
  "version": "1.0.0",
  "uptime": "12h 34m 56s"
}
POST
/api/v1/analyze

Analyze a DNA sequence file

Request

Form data with the following parameters:

  • dnaFile (required): The DNA sequence file to analyze
  • options: JSON string with analysis options

Response

{
  "sequence": {
    "length": 1234,
    "filename": "example.fa"
  },
  "basePairs": {
    "counts": { "A": 300, "T": 310, "G": 320, "C": 304 },
    "percentages": { "A": 24.3, "T": 25.1, "G": 25.9, "C": 24.7 },
    "gcContent": 50.6
  },
  "analysis": {
    // Additional analysis results based on options
  }
}
POST
/api/v1/base-pairs

Analyze base pair composition of a DNA sequence

Request

{
  "sequence": "ATGCATGCATGC"
}

Response

{
  "counts": { "A": 3, "T": 3, "G": 3, "C": 3 },
  "percentages": { "A": 25, "T": 25, "G": 25, "C": 25 },
  "gcContent": 50
}

Python Client Example

Here's a simple Python example to interact with the DNAnalyzer API:

Python
import requests

# API base URL
BASE_URL = "http://localhost:8080/api/v1"

# Check server status
response = requests.get(f"{BASE_URL}/status")
print("Server status:", response.json())

# Analyze a sequence
with open("sequence.fa", "rb") as f:
    files = {"dnaFile": f}
    options = {
        "sequence-length": True,
        "gc-content": True,
        "base-composition": True,
        "start-codons": True,
        "stop-codons": True
    }
    data = {"options": json.dumps(options)}
    response = requests.post(f"{BASE_URL}/analyze", files=files, data=data)
    
    # Print results
    result = response.json()
    print(f"Sequence length: {result['sequence']['length']}")
    print(f"GC content: {result['basePairs']['gcContent']}%")

Frequently Asked Questions

Is my DNA data secure when using DNAnalyzer?

Yes, DNAnalyzer is designed with privacy as a fundamental principle. All processing occurs locally on your device, and your DNA sequence data never leaves your system. In web mode, analysis runs directly in your browser, and in server mode, it runs only on your local machine. We don't collect, store, or transmit any of your sequence data.

What file formats does DNAnalyzer support?

DNAnalyzer supports the following file formats:

  • FASTA (.fa, .fasta)
  • FASTQ (.fastq)
  • Plain text (.txt) containing DNA sequences

The sequences should contain only A, T, G, C, and N (unknown) nucleotides. Other characters will be treated as unknown bases.

How large of a sequence can DNAnalyzer handle?

The size limitations depend on the mode of operation:

  • Web Interface: Up to around 5MB sequence files, depending on your browser and device memory
  • Local Server: Can handle much larger sequences, typically up to several hundred MB

For very large genomes (e.g., human genome), we recommend using the local server installation with a machine that has at least 8GB of RAM.

Can DNAnalyzer analyze my 23andMe or Ancestry DNA data?

Not directly in the current version. DNAnalyzer is designed to work with full DNA sequences rather than SNP genotype data from consumer genetics services. However, we're developing a feature to support genotype data analysis in an upcoming version.

If you have raw data from these services, you would need to convert it to a suitable format before using it with DNAnalyzer.

Is DNAnalyzer open source?

Yes, DNAnalyzer is completely open source under the MIT License. You can view, modify, and contribute to the code on our GitHub repository.

Community & Support

DNAnalyzer has an active community of users and developers. Here's how you can get involved and find support.

Getting Help

If you need assistance with DNAnalyzer, there are several resources available:

Discord Community

Join our Discord server for real-time assistance and discussions about DNAnalyzer.

Join Discord

GitHub Issues

Report bugs or request features through our GitHub issue tracker.

GitHub Issues

Documentation

Browse comprehensive guides and tutorials in our documentation.

View Docs

Contributing

DNAnalyzer is an open-source project, and we welcome contributions from the community. There are many ways to contribute:

  • Code Contributions: Help improve DNAnalyzer by fixing bugs or adding new features
  • Documentation: Improve our guides, tutorials, and API documentation
  • Testing: Test DNAnalyzer and report issues or suggest improvements
  • Translations: Help translate DNAnalyzer into different languages

To get started with contributing, please read our contribution guidelines.

Code of Conduct

We're committed to providing a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.