Remove sample identities from the repository; document the rule
Datasets may be confidential; sample names and measured unit cells committed to the repo can leak outside the group working on them. Scrub existing occurrences and add a "No sample identities in the repository" section to CLAUDE.md (forbidden: sample/dataset names, internal codes, measured cells tied to a sample; fine: space group / lattice / twinning descriptors). - Comments: replace internal dataset codes and protein names with the crystallographic situation they illustrate (centred vs pseudo-symmetric, holohedral, cubic, F-cubic/hexagonal, ...). - Docs: same, in the analysis/writer/stream references and example configs. - Tests: rename sample-named identifiers, TEST_CASE names, file prefixes and asserted labels to neutral crystallographic names (e.g. tetragonal_uc); behaviour unchanged. Reduce the CrystFEL reference PDB to a bare CRYST1 cell file (cell.pdb) and rename the reference data file. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+43
-43
@@ -246,14 +246,14 @@ TEST_CASE("FFTIndexer","[Indexing]") {
|
||||
logger.Info("Time: {} ms", std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count());
|
||||
}
|
||||
|
||||
TEST_CASE("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
Logger logger("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction");
|
||||
TEST_CASE("PostIndexingRefinement_MultiLattice_TwoCrystals_BraggPrediction","[Indexing]") {
|
||||
Logger logger("PostIndexingRefinement_MultiLattice_TwoCrystals_BraggPrediction");
|
||||
|
||||
UnitCell lysozyme_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice lysozyme_base(lysozyme_uc);
|
||||
UnitCell tetragonal_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice tetragonal_base(tetragonal_uc);
|
||||
|
||||
CrystalLattice lysozyme_rot_1 = RotateLattice(lysozyme_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice lysozyme_rot_2 = RotateLattice(lysozyme_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
CrystalLattice crystal_rot_1 = RotateLattice(tetragonal_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice crystal_rot_2 = RotateLattice(tetragonal_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
|
||||
DiffractionExperiment experiment(DetJF4M());
|
||||
experiment.DetectorDistance_mm(75)
|
||||
@@ -272,8 +272,8 @@ TEST_CASE("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction","[I
|
||||
.mosaicity_multiplier = 4.0f
|
||||
};
|
||||
|
||||
const auto spots_1 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_1, pred_settings);
|
||||
const auto spots_2 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_2, pred_settings);
|
||||
const auto spots_1 = BuildPredictedReciprocalSpots(experiment, crystal_rot_1, pred_settings);
|
||||
const auto spots_2 = BuildPredictedReciprocalSpots(experiment, crystal_rot_2, pred_settings);
|
||||
|
||||
logger.Info("Predicted spots lattice 1: {}", spots_1.size());
|
||||
logger.Info("Predicted spots lattice 2: {}", spots_2.size());
|
||||
@@ -300,9 +300,9 @@ TEST_CASE("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction","[I
|
||||
oCell(idx * 3 + 2, 2) = lattice.Vec2().z;
|
||||
};
|
||||
|
||||
put_lattice(0, lysozyme_rot_1);
|
||||
put_lattice(1, lysozyme_rot_2);
|
||||
put_lattice(2, lysozyme_rot_1); // duplicate to verify overlap rejection
|
||||
put_lattice(0, crystal_rot_1);
|
||||
put_lattice(1, crystal_rot_2);
|
||||
put_lattice(2, crystal_rot_1); // duplicate to verify overlap rejection
|
||||
|
||||
// Keep bootstrap scores tiny to disable candidate drift in iterative re-fitting.
|
||||
scores(0) = 1e-6f;
|
||||
@@ -324,12 +324,12 @@ TEST_CASE("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction","[I
|
||||
|
||||
REQUIRE(refined.size() >= 2);
|
||||
|
||||
int lysozyme_count = 0;
|
||||
int crystal_count = 0;
|
||||
for (const auto &lattice : refined) {
|
||||
if (MatchesCellLengths(lattice.GetUnitCell(), lysozyme_uc))
|
||||
++lysozyme_count;
|
||||
if (MatchesCellLengths(lattice.GetUnitCell(), tetragonal_uc))
|
||||
++crystal_count;
|
||||
}
|
||||
CHECK(lysozyme_count >= 2);
|
||||
CHECK(crystal_count >= 2);
|
||||
|
||||
int64_t count_0 = 0;
|
||||
int64_t count_1 = 0;
|
||||
@@ -346,14 +346,14 @@ TEST_CASE("PostIndexingRefinement_MultiLattice_TwoLysozymes_BraggPrediction","[I
|
||||
}
|
||||
|
||||
/*
|
||||
TEST_CASE("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
Logger logger("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction");
|
||||
TEST_CASE("FFTIndexer_MultiLattice_TwoCrystals_BraggPrediction","[Indexing]") {
|
||||
Logger logger("FFTIndexer_MultiLattice_TwoCrystals_BraggPrediction");
|
||||
|
||||
UnitCell lysozyme_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice lysozyme_base(lysozyme_uc);
|
||||
UnitCell tetragonal_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice tetragonal_base(tetragonal_uc);
|
||||
|
||||
CrystalLattice lysozyme_rot_1 = RotateLattice(lysozyme_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice lysozyme_rot_2 = RotateLattice(lysozyme_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
CrystalLattice crystal_rot_1 = RotateLattice(tetragonal_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice crystal_rot_2 = RotateLattice(tetragonal_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
|
||||
DiffractionExperiment experiment(DetJF4M());
|
||||
experiment.DetectorDistance_mm(75)
|
||||
@@ -372,8 +372,8 @@ TEST_CASE("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
.mosaicity_multiplier = 4.0f
|
||||
};
|
||||
|
||||
auto spots_1 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_1, pred_settings);
|
||||
auto spots_2 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_2, pred_settings);
|
||||
auto spots_1 = BuildPredictedReciprocalSpots(experiment, crystal_rot_1, pred_settings);
|
||||
auto spots_2 = BuildPredictedReciprocalSpots(experiment, crystal_rot_2, pred_settings);
|
||||
|
||||
logger.Info("Predicted spots lattice 1: {}", spots_1.size());
|
||||
logger.Info("Predicted spots lattice 2: {}", spots_2.size());
|
||||
@@ -389,7 +389,7 @@ TEST_CASE("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
.FFT_HighResolution_A(2.0f)
|
||||
.FFT_NumVectors(1024);
|
||||
experiment.ImportIndexingSettings(settings)
|
||||
.SetUnitCell(lysozyme_uc);
|
||||
.SetUnitCell(tetragonal_uc);
|
||||
|
||||
REQUIRE(experiment.GetIndexingAlgorithm() == IndexingAlgorithmEnum::FFT);
|
||||
|
||||
@@ -404,20 +404,20 @@ TEST_CASE("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
|
||||
const float tolerance = experiment.GetIndexingSettings().GetTolerance();
|
||||
|
||||
int lysozyme_count = 0;
|
||||
int crystal_count = 0;
|
||||
for (size_t i = 0; i < result.lattice.size(); ++i) {
|
||||
auto uc = result.lattice[i].GetUnitCell();
|
||||
int64_t indexed_count = 0;
|
||||
BuildIndexedMask(spots, result.lattice[i], tolerance, indexed_count);
|
||||
logger.Info("Lattice {} cell ({:.1f} {:.1f} {:.1f}) indexes {} spots",
|
||||
i, uc.a, uc.b, uc.c, indexed_count);
|
||||
if (MatchesCellLengths(uc, lysozyme_uc))
|
||||
++lysozyme_count;
|
||||
if (MatchesCellLengths(uc, tetragonal_uc))
|
||||
++crystal_count;
|
||||
}
|
||||
|
||||
CHECK(lysozyme_count >= 2);
|
||||
CHECK(crystal_count >= 2);
|
||||
|
||||
// Verify the two best lysozyme lattices are distinct (low overlap)
|
||||
// Verify the two best crystal lattices are distinct (low overlap)
|
||||
if (result.lattice.size() >= 2) {
|
||||
int64_t count_0 = 0, count_1 = 0;
|
||||
auto mask_0 = BuildIndexedMask(spots, result.lattice[0], tolerance, count_0);
|
||||
@@ -429,14 +429,14 @@ TEST_CASE("FFTIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("FFBIDXIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]") {
|
||||
Logger logger("FFBIDXIndexer_MultiLattice_TwoLysozymes_BraggPrediction");
|
||||
TEST_CASE("FFBIDXIndexer_MultiLattice_TwoCrystals_BraggPrediction","[Indexing]") {
|
||||
Logger logger("FFBIDXIndexer_MultiLattice_TwoCrystals_BraggPrediction");
|
||||
|
||||
UnitCell lysozyme_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice lysozyme_base(lysozyme_uc);
|
||||
UnitCell tetragonal_uc{36.9, 78.95, 78.95, 90.0, 90.0, 90.0};
|
||||
CrystalLattice tetragonal_base(tetragonal_uc);
|
||||
|
||||
CrystalLattice lysozyme_rot_1 = RotateLattice(lysozyme_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice lysozyme_rot_2 = RotateLattice(lysozyme_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
CrystalLattice crystal_rot_1 = RotateLattice(tetragonal_base, MakeRotation(10.0f, 18.0f, 27.0f));
|
||||
CrystalLattice crystal_rot_2 = RotateLattice(tetragonal_base, MakeRotation(66.0f, -14.0f, 101.0f));
|
||||
|
||||
DiffractionExperiment experiment(DetJF4M());
|
||||
experiment.DetectorDistance_mm(75)
|
||||
@@ -455,8 +455,8 @@ TEST_CASE("FFBIDXIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]"
|
||||
.mosaicity_multiplier = 4.0f
|
||||
};
|
||||
|
||||
auto spots_1 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_1, pred_settings);
|
||||
auto spots_2 = BuildPredictedReciprocalSpots(experiment, lysozyme_rot_2, pred_settings);
|
||||
auto spots_1 = BuildPredictedReciprocalSpots(experiment, crystal_rot_1, pred_settings);
|
||||
auto spots_2 = BuildPredictedReciprocalSpots(experiment, crystal_rot_2, pred_settings);
|
||||
|
||||
logger.Info("Predicted spots lattice 1: {}", spots_1.size());
|
||||
logger.Info("Predicted spots lattice 2: {}", spots_2.size());
|
||||
@@ -466,7 +466,7 @@ TEST_CASE("FFBIDXIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]"
|
||||
spots.insert(spots.end(), spots_1.begin(), spots_1.end());
|
||||
spots.insert(spots.end(), spots_2.begin(), spots_2.end());
|
||||
|
||||
experiment.SetUnitCell(lysozyme_uc);
|
||||
experiment.SetUnitCell(tetragonal_uc);
|
||||
experiment.IndexingAlgorithm(IndexingAlgorithmEnum::FFBIDX);
|
||||
|
||||
REQUIRE(experiment.GetIndexingAlgorithm() == IndexingAlgorithmEnum::FFBIDX);
|
||||
@@ -482,20 +482,20 @@ TEST_CASE("FFBIDXIndexer_MultiLattice_TwoLysozymes_BraggPrediction","[Indexing]"
|
||||
|
||||
const float tolerance = experiment.GetIndexingSettings().GetTolerance();
|
||||
|
||||
int lysozyme_count = 0;
|
||||
int crystal_count = 0;
|
||||
for (size_t i = 0; i < result.lattice.size(); ++i) {
|
||||
auto uc = result.lattice[i].GetUnitCell();
|
||||
int64_t indexed_count = 0;
|
||||
BuildIndexedMask(spots, result.lattice[i], tolerance, indexed_count);
|
||||
logger.Info("Lattice {} cell ({:.1f} {:.1f} {:.1f}) indexes {} spots",
|
||||
i, uc.a, uc.b, uc.c, indexed_count);
|
||||
if (MatchesCellLengths(uc, lysozyme_uc))
|
||||
++lysozyme_count;
|
||||
if (MatchesCellLengths(uc, tetragonal_uc))
|
||||
++crystal_count;
|
||||
}
|
||||
|
||||
CHECK(lysozyme_count >= 2);
|
||||
CHECK(crystal_count >= 2);
|
||||
|
||||
// Verify the two best lysozyme lattices are distinct (low overlap)
|
||||
// Verify the two best crystal lattices are distinct (low overlap)
|
||||
if (result.lattice.size() >= 2) {
|
||||
int64_t count_0 = 0, count_1 = 0;
|
||||
auto mask_0 = BuildIndexedMask(spots, result.lattice[0], tolerance, count_0);
|
||||
|
||||
Reference in New Issue
Block a user