DNA/RNA-protein interactions underpin fundamental biological processes such as transcription, splicing, and translation. The increasing number of experimentally determined three-dimensional structures of nucleic acid-protein complexes provides unprecedented opportunities to decipher the underlying principles governing the process of DNA/RNA-protein recognition. Existing bioinformatics tools suffer either by scope or usability. We have developed SNAP, a new software for characterizing the Structures of Nucleic Acid-Protein complexes that is consistent, rigorous, robust, and efficient. Here we focus on the analysis of DNA-protein interactions.Starting from a structure of a DNA-protein complex in PDB or PDBx/mmCIF format, SNAP automatically detects double-helical regions consisting of either canonical base-pairs (bp) or non-canonical bps, and categorizes protein into secondary structural units (alpha helices, beta sheets, turns, and loops). The program then characterizes DNA-protein interactions by checking all combinations between the two components: major groove, minor groove, and backbone for DNA, versus each alpha helix, beta sheet, turn, and loop for protein. SNAP recognizes and outputs base-amino-acid H-bonding and stacking interactions. To quantify the relative spatial relationship between interacting amino acids and bases, SNAP defines a local amino-acid reference frame in the side chain, and takes advantage of the standard base reference frame. SNAP calculates all six rigid-body parameters to allow for the analysis of large sets of DNA-protein complexes consistently and rigorously.Implemented in ANSI C as a stand-alone command-line program, SNAP is self-contained and its executables are tiny, with zero runtime dependencies on third party libraries. The program has been checked against all DNA-protein complexes in the PDB, without any known issues. SNAP is a new component of the 3DNA suite of programs (x3dna.org) for the analysis, rebuilding, and visualization of three-dimensional nucleic acid structures. It consolidates, refines, and significantly extends 3DNA's functionality for DNA-protein structural analysis.