Skip to content

feat(domain): add receptor domain/joint config + parser (Phase 4 task 1)#26

Merged
transfix merged 4 commits into
masterfrom
feature/f3dock-phase4-domain-spec
May 18, 2026
Merged

feat(domain): add receptor domain/joint config + parser (Phase 4 task 1)#26
transfix merged 4 commits into
masterfrom
feature/f3dock-phase4-domain-spec

Conversation

@transfix

Copy link
Copy Markdown
Owner

Adds ReceptorDomainConfig / DomainSpec / JointSpec in inc/f3dock/domain/DomainSpec.h plus a DomainSpecParser that mirrors the existing FlexSampler::parse_param pattern. Three new parameter-file keys: receptorDomain, receptorJointFixed, receptorJointHinge. Validation covers duplicate ids, unknown joint endpoints, multi-parent edges, multi-root graphs; build_graph() populates an f3dock::domain::DomainGraph with rest-pose joint transforms using Rodrigues rotation about an arbitrary axis line for hinges. PARAMS_IN::receptorDomains carries the parsed config; it is read but not yet acted on at runtime (atom partitioning is task 2, scoring-loop refactor is task 3). Existing F2Dock behaviour is untouched when no receptorDomain keys are present. Unit tests in tests/unit/test_f3dock_domain_spec.cpp. Updates migration matrix. [Phase 4 task 1]

Joe added 3 commits May 18, 2026 03:27
Adds ReceptorDomainConfig / DomainSpec / JointSpec in
inc/f3dock/domain/DomainSpec.h plus a DomainSpecParser that mirrors
the existing FlexSampler::parse_param pattern. Three new parameter-
file keys: receptorDomain, receptorJointFixed, receptorJointHinge.

Validation covers duplicate ids, unknown joint endpoints, multi-parent
edges, and multi-root graphs; build_graph() populates an
f3dock::domain::DomainGraph with rest-pose joint transforms using
Rodrigues rotation about an arbitrary axis line for hinges.

PARAMS_IN::receptorDomains carries the parsed config; it is read but
not yet acted on at runtime (atom partitioning is task 2, scoring-loop
refactor is task 3). Existing F2Dock behaviour is untouched when no
receptorDomain keys are present.
Drop the _MSC_VER/strings.h-conditional F3DOCK_STRCASECMP macro in
FlexSampler.cpp and the ad-hoc tolower lambda in DomainSpec.cpp in
favor of a single inline f3dock::util::iequals(string_view, string_view)
in inc/f3dock/util/StringUtil.h. Pure C++20 standard library, no POSIX
or MSVC-specific headers needed at the call site.
- .github/workflows/ci.yml: include feature/** branches so stacked feature PRs run CI.
- tests/unit/test_f3dock_domain_spec.cpp: clang-format-18 reflow (flagged by CI on PR #26).
@transfix transfix merged commit 7335646 into master May 18, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant