TRACE is a forensic support system that analyzes biological evidence (DNA sequence and Fingerprints) from crime scenes, compares it to suspect databases, and outputs a ranked list of suspects with confidence scores and a detailed analysis explaining the reasoning.
You can directly access the fully deployed version of TRACE online without installing anything: https://trace-dun.vercel.app/ (though be aware of delays in responses between moderate periods of usage, due to backend sleeping)
If you'd like to run TRACE on your local machine, the project is divided into two separate applications that need to be started: the Backend and the Frontend.
The development branch may be required for local testing.
- Node.js: Download and Install Node.js
- Python 3.10+: Download and Install Python
The backend handles the core logic for forensic processing, specifically DNA matching through sequence alignment and fingerprint matching through ORB feature detection.
- Open a new terminal and navigate to the
Backenddirectory:cd Backend - (Optional but recommended) Create and activate a Python virtual environment:
python -m venv .venv # On Windows: .venv\Scripts\activate # On Mac/Linux: source .venv/bin/activate
- Install the required Python dependencies:
pip install -r requirements.txt
- Set up an environment variable for Gemini (Required to generate Forensic Reports):
Create a
.envfile in theBackenddirectory and define yourGEMINI_API_KEY:GEMINI_API_KEY=your_gemini_api_key_here
- Start the backend server:
The backend will be running on
uvicorn api:app --reload
http://localhost:8000(or whichever port is defined).
The frontend is a beautifully designed, modern UI where you can upload evidence files and manage analysis cases.
- Open another new terminal and navigate to the
Frontenddirectory:cd Frontend - Install the necessary Node dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and navigate to the local URL provided in the terminal (usually
http://localhost:5173).
When testing TRACE, you generally need the following types of files (example files can be found inside the Backend/Data folder):
- Crime Scene DNA (
.fasta): Sequence found at the crime scene. - Crime Scene Fingerprint (
.BMPor similar): The fingerprint image from the evidence. - Crime Scene Hair type (
.csvor similar): The type of hair found at the crime scene. - Suspect DNA Database (
.fasta): Sequence database containing the suspects. - Suspect Fingerprints (Images): Used to cross-reference the suspects.
- Suspect Scene Hair Fibres (
.csvor similar): Suspects's hair data.