test_class.file: singa-structure/src/test/java/bio/singa/structure/algorithms/superimposition/fit3d/ValidCandidateGeneratorTest.java
test_class.identifier: ValidCandidateGeneratorTest
test_case.body: @Test
      void shouldGenerateValidCandidates() {
  
          Structure structure = StructureParser.pdb()
                  .pdbIdentifier("1a0j")
                  .parse();
  
          StructuralMotif queryMotif = StructuralMotif.fromLeafIdentifiers(structure, LeafIdentifiers.of(
                  "A-57",
                  "A-102",
                  "A-195"));
  
          queryMotif.addExchangeableFamily(LeafIdentifier.fromSimpleString("A-57"), AminoAcidFamily.METHIONINE);
          queryMotif.addExchangeableFamily(LeafIdentifier.fromSimpleString("A-57"), AminoAcidFamily.VALINE);
          queryMotif.addExchangeableFamily(LeafIdentifier.fromSimpleString("A-102"), AminoAcidFamily.VALINE);
  
          List<LeafSubstructure<?>> environment = StructuralMotif.fromLeafIdentifiers(structure, LeafIdentifiers.of(
                  "A-104",
                  "A-138",
                  "A-139",
                  "A-140",
                  "A-141",
                  "A-142",
                  "A-143",
                  "A-177",
                  "A-179",
                  "A-180",
                  "A-190",
                  "A-191",
                  "A-192",
                  "A-193",
                  "A-194",
                  "A-196",
                  "A-197",
                  "A-198",
                  "A-211",
                  "A-212",
                  "A-213",
                  "A-214",
                  "A-215",
                  "A-216",
                  "A-227",
                  "A-228",
                  "A-229",
                  "A-230",
                  "A-231",
                  "A-234",
                  "A-237",
                  "A-248",
                  "A-246",
                  "A-304",
                  "A-305",
                  "A-306",
                  "A-307",
                  "A-312",
                  "A-321",
                  "A-323",
                  "A-330",
                  "A-418",
                  "A-448",
                  "A-454",
                  "A-463",
                  "A-467",
                  "A-475",
                  "A-633",
                  "A-195",
                  "A-57",
                  "A-102")).getAllLeafSubstructures();
  
          ValidCandidateGenerator validCandidateGeneratorGraphBased = new ValidCandidateGenerator(queryMotif.getAllLeafSubstructures(), environment);
          assertEquals(204, validCandidateGeneratorGraphBased.getCandidates().size());
      }
test_case.class_method_signature: ValidCandidateGeneratorTest.shouldGenerateValidCandidates()
test_case.full_signature: @Test void shouldGenerateValidCandidates()
test_case.identifier: shouldGenerateValidCandidates
test_case.invocations: parse pdbIdentifier pdb fromLeafIdentifiers of addExchangeableFamily fromSimpleString addExchangeableFamily fromSimpleString addExchangeableFamily fromSimpleString getAllLeafSubstructures fromLeafIdentifiers of getAllLeafSubstructures assertEquals size getCandidates
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldGenerateValidCandidates()
focal_class.declarator: logger = LoggerFactory.getLogger(ValidCandidateGenerator.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(ValidCandidateGenerator.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: queryMotif
focal_class.modifier: private final
focal_class.original_string: private final List<LeafSubstructure<?>> queryMotif;
focal_class.type: List<LeafSubstructure<?>>
focal_class.var_name: queryMotif
focal_class.declarator: environment
focal_class.modifier: private final
focal_class.original_string: private final List<LeafSubstructure<?>> environment;
focal_class.type: List<LeafSubstructure<?>>
focal_class.var_name: environment
focal_class.declarator: candidates
focal_class.modifier: private final
focal_class.original_string: private final List<List<LeafSubstructure<?>>> candidates;
focal_class.type: List<List<LeafSubstructure<?>>>
focal_class.var_name: candidates
focal_class.declarator: squaredFilterThreshold
focal_class.modifier: private
focal_class.original_string: private double squaredFilterThreshold;
focal_class.type: double
focal_class.var_name: squaredFilterThreshold
focal_class.declarator: pairwiseQueryMotifDistanceMap
focal_class.modifier: private
focal_class.original_string: private Map<Integer, List<Double>> pairwiseQueryMotifDistanceMap;
focal_class.type: Map<Integer, List<Double>>
focal_class.var_name: pairwiseQueryMotifDistanceMap
focal_class.declarator: squaredDistanceMatrix
focal_class.modifier: private
focal_class.original_string: private LabeledSymmetricMatrix<LeafSubstructure<?>> squaredDistanceMatrix;
focal_class.type: LabeledSymmetricMatrix<LeafSubstructure<?>>
focal_class.var_name: squaredDistanceMatrix
focal_class.declarator: searchSpace
focal_class.modifier: private
focal_class.original_string: private DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace;
focal_class.type: DirectedGraph<GenericNode<LeafSubstructure<?>>>
focal_class.var_name: searchSpace
focal_class.file: singa-structure/src/main/java/bio/singa/structure/algorithms/superimposition/fit3d/ValidCandidateGenerator.java
focal_class.identifier: ValidCandidateGenerator
focal_class.class_method_signature: ValidCandidateGenerator.ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment)
focal_class.full_signature: public  ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment)
focal_class.identifier: ValidCandidateGenerator
focal_class.modifiers: public
focal_class.parameters: (List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment)
focal_class.signature:  ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment)
focal_class.class_method_signature: ValidCandidateGenerator.ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment,
                                     Map<Integer, List<Double>> pairwiseQueryMotifDistanceMap,
                                     LabeledSymmetricMatrix<LeafSubstructure<?>> squaredDistanceMatrix,
                                     double squaredFilterThreshold)
focal_class.full_signature: public  ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment,
                                     Map<Integer, List<Double>> pairwiseQueryMotifDistanceMap,
                                     LabeledSymmetricMatrix<LeafSubstructure<?>> squaredDistanceMatrix,
                                     double squaredFilterThreshold)
focal_class.identifier: ValidCandidateGenerator
focal_class.modifiers: public
focal_class.parameters: (List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment,
                                     Map<Integer, List<Double>> pairwiseQueryMotifDistanceMap,
                                     LabeledSymmetricMatrix<LeafSubstructure<?>> squaredDistanceMatrix,
                                     double squaredFilterThreshold)
focal_class.signature:  ValidCandidateGenerator(List<LeafSubstructure<?>> queryMotif, List<LeafSubstructure<?>> environment,
                                     Map<Integer, List<Double>> pairwiseQueryMotifDistanceMap,
                                     LabeledSymmetricMatrix<LeafSubstructure<?>> squaredDistanceMatrix,
                                     double squaredFilterThreshold)
focal_class.class_method_signature: ValidCandidateGenerator.checkCompatibility(LeafSubstructure<?> motifLeafSubstructure, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.full_signature: private static boolean checkCompatibility(LeafSubstructure<?> motifLeafSubstructure, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.identifier: checkCompatibility
focal_class.modifiers: private static
focal_class.parameters: (LeafSubstructure<?> motifLeafSubstructure, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.return: boolean
focal_class.signature: boolean checkCompatibility(LeafSubstructure<?> motifLeafSubstructure, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.class_method_signature: ValidCandidateGenerator.getCandidates()
focal_class.full_signature: public List<List<LeafSubstructure<?>>> getCandidates()
focal_class.identifier: getCandidates
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<List<LeafSubstructure<?>>>
focal_class.signature: List<List<LeafSubstructure<?>>> getCandidates()
focal_class.class_method_signature: ValidCandidateGenerator.getSearchSpace()
focal_class.full_signature: public DirectedGraph<GenericNode<LeafSubstructure<?>>> getSearchSpace()
focal_class.identifier: getSearchSpace
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DirectedGraph<GenericNode<LeafSubstructure<?>>>
focal_class.signature: DirectedGraph<GenericNode<LeafSubstructure<?>>> getSearchSpace()
focal_class.class_method_signature: ValidCandidateGenerator.generateCandidates()
focal_class.full_signature: private void generateCandidates()
focal_class.identifier: generateCandidates
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void generateCandidates()
focal_class.class_method_signature: ValidCandidateGenerator.growSearchSpace(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.full_signature: private void growSearchSpace(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.identifier: growSearchSpace
focal_class.modifiers: private
focal_class.parameters: (int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.return: void
focal_class.signature: void growSearchSpace(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure)
focal_class.class_method_signature: ValidCandidateGenerator.addValidNode(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure, List<LeafSubstructure<?>> queryPath)
focal_class.full_signature: private void addValidNode(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure, List<LeafSubstructure<?>> queryPath)
focal_class.identifier: addValidNode
focal_class.modifiers: private
focal_class.parameters: (int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure, List<LeafSubstructure<?>> queryPath)
focal_class.return: void
focal_class.signature: void addValidNode(int remainingQueryLeafSubstructures, DirectedGraph<GenericNode<LeafSubstructure<?>>> searchSpace, GenericNode<LeafSubstructure<?>> searchSpaceParent, LeafSubstructure<?> candidateLeafSubstructure, List<LeafSubstructure<?>> queryPath)
focal_method.body: public List<List<LeafSubstructure<?>>> getCandidates() {
          return candidates;
      }
focal_method.class_method_signature: ValidCandidateGenerator.getCandidates()
focal_method.full_signature: public List<List<LeafSubstructure<?>>> getCandidates()
focal_method.identifier: getCandidates
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<List<LeafSubstructure<?>>>
focal_method.signature: List<List<LeafSubstructure<?>>> getCandidates()