A native, Swift-based sequence trace editor for fast and reliable DNA data analysis. Inspired by the classic SeqTrace project.
First milestone: open an .ab1 (ABIF) file and render the chromatogram traces.
- Minimum macOS: 13 (Ventura) or later. This matches
platforms: [.macOS(.v13)]inPackage.swiftand the SwiftUI APIs used in the app. - Hardware: Apple Silicon (arm64) and Intel (x86_64) Macs that can run Ventura or newer. Release builds can be shipped as a universal binary (both architectures in one app) so a single download runs on either CPU.
- Note: The minimum OS version is the same for universal and single-architecture builds; “universal” only means both CPU types are included, not a different macOS floor.
- Open Xcode
- File → Open… → select the project folder (the one containing
Package.swift) - Press Run
From the repository root (full Xcode recommended if you want a universal Intel + Apple Silicon binary):
./scripts/make-dmg.sh- Output:
dist/SwiftSeqTrace-<version>-b<build>.dmg(version and build are read fromSources/SeqTraceMac/AppInfo.swift). The disk image containsSwift SeqTrace.app. - First open: if the app is only ad-hoc signed, recipients may need Control-click → Open once.
- Universal binary: run with
BUILD_UNIVERSAL=1 ./scripts/make-dmg.shon a Mac that has Apple’s xcbuild (full Xcode install). Otherwise the script builds for your Mac’s architecture only.
- User guide (bundled):
Sources/SeqTraceMac/Resources/USER_GUIDE.md— copied into the app; testers can open it via Help → Swift SeqTrace User Guide (⇧⌘?). - About: Swift SeqTrace → About Swift SeqTrace shows version, build, description, and feedback from
AppInfo.swift. - Dock icon: a waveform SF Symbol is applied at launch as a placeholder until you add a real icon (
.icns/ asset catalog in your shipping app bundle). - Each internal drop: bump
AppInfo.marketingVersion/AppInfo.build, setAppInfo.feedbackContact, and ship the DMG or zip with a name that includes version + build.
Published builds live under Releases. For a new version: bump AppInfo, run ./scripts/make-dmg.sh, commit and push, then tag and publish (example with GitHub CLI gh):
git tag -a v0.1.1 -m "Swift SeqTrace 0.1.1 (build 1)"
git push origin v0.1.1
gh release create v0.1.1 "./dist/SwiftSeqTrace-0.1.1-b1.dmg" --repo popollz/SqTr \
--title "Swift SeqTrace 0.1.1 (build 1)" --notes "Short release notes here."- Opens
.ab1files using an Open Panel (single trace or forward + reverse pair for contig assembly). - Picks the best 4-channel
DATAset (prefersDATA9..DATA12; falls back toDATA1..DATA4or the largest consistent set). - Maps channels to bases using the instrument's
FWO_1tag when present; falls back to positional mapping (DATA9=A,DATA10=C,DATA11=G,DATA12=T) whenFWO_1is absent. - Unit-tested: see
Tests/SeqTraceMacTests/(run withswift testor ⌘U in Xcode).
- Dynamic header: shows
Base L N, Quality: Qfor the currently selected base (color-coded A/C/G/T); showsBase —before the user interacts. - Top DNA strip of colored base letters above the four traces.
- Quality histogram (pale blue bars behind the traces) with dashed Q20 and Q30 reference lines.
- Translucent blue selection column spanning the full canvas height, with outline on both edges when a range is selected.
- Minimal toolbar: gear popover (Peak-height + Pan), horizontal-zoom slider with
N×readout, copy-sequence icon. - Collapsible
Sequencedrawer with a full-featured editable NSTextView (closed by default).
- Click anywhere on the trace → select the nearest base; header + selection column update instantly.
- Click-drag on the trace → pan left/right.
- Pinch (trackpad) → horizontal zoom around the current view center.
- In contig view, clicking either forward or reverse chromatogram moves the consensus caret, which re-highlights both chromatograms in sync.