def test_pick_ray(dummy): backbone_n = np.array([[-0.334, -0.334], [-0.943, -0.943], [0.000, 0.000], [1.000, 0.000]]) backbone_c = np.array([[1.251, -0.616], [2.390, 0.788], [0.000, 0.000], [1.000, 0.000]]) assert_allclose(backbone_n, pick_ray(dummy.residue(1), "1H", "N"), atol=1e-3) assert_allclose(backbone_c, pick_ray(dummy.residue(1), "O", "C"), atol=1e-3)
CONECT 1 2 CONECT 2 1 3 4 5 CONECT 3 2 CONECT 4 2 CONECT 5 2 CONECT 6 7 CONECT 7 6 8 9 CONECT 8 7 CONECT 9 7 10 11 CONECT 10 9 CONECT 11 9 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "1HZ", "NZ"), pick_ray(pose.residue(1), "2HZ", "NZ"), pick_ray(pose.residue(1), "3HZ", "NZ") ], 2: [ pick_ray(pose.residue(2), "1HD2", "ND2"), pick_ray(pose.residue(2), "2HD2", "ND2") ] } sc_acceptor = {2: [pick_ray(pose.residue(2), "OD1", "CG")]}
CONECT 7 4 CONECT 8 4 CONECT 9 5 CONECT 10 5 CONECT 11 12 CONECT 12 11 13 14 CONECT 13 12 CONECT 14 12 15 16 CONECT 15 14 CONECT 16 14 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "HE", "NE"), pick_ray(pose.residue(1), "1HH1", "NH1"), pick_ray(pose.residue(1), "2HH1", "NH1"), pick_ray(pose.residue(1), "1HH2", "NH2"), pick_ray(pose.residue(1), "2HH2", "NH2") ], 2: [ pick_ray(pose.residue(2), "1HD2", "ND2"), pick_ray(pose.residue(2), "2HD2", "ND2") ] } sc_acceptor = {2: [pick_ray(pose.residue(2), "OD1", "CG")]}
ATOM 33 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 34 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 35 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 36 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 37 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 38 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 39 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 40 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = { 2: [ pick_ray(pose.residue(2), "HE2", "NE2") ] }
ATOM 37 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 38 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 39 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 40 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 41 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 42 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 43 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 44 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = {2: [pick_ray(pose.residue(2), "HH", "OH")]} sc_acceptor = {2: [pick_ray(pose.residue(2), "OH", "CZ")]} cat_pi = [(pick_ray(pose.residue(2), "CE1",
ATOM 36 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 37 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 38 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 39 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 40 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 41 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 42 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 43 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = { } sc_acceptor = { } cat_pi = [
ATOM 12 OG SER A 2 4.273 -0.309 -4.595 1.00 0.00 O ATOM 13 H SER A 2 1.939 -0.680 -2.908 1.00 0.00 H ATOM 14 HA SER A 2 3.320 1.908 -2.627 1.00 0.00 H ATOM 15 1HB SER A 2 3.330 1.306 -5.420 1.00 0.00 H ATOM 16 2HB SER A 2 4.691 1.679 -4.374 1.00 0.00 H ATOM 17 HG SER A 2 3.848 -0.782 -3.875 1.00 0.00 H TER CONECT 1 2 CONECT 2 1 3 4 CONECT 3 2 CONECT 4 2 5 6 CONECT 5 4 CONECT 6 4 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "1HD2", "ND2"), pick_ray(pose.residue(1), "2HD2", "ND2") ], 2: [pick_ray(pose.residue(2), "HG", "OG")] } sc_acceptor = { 1: [pick_ray(pose.residue(1), "OD1", "CG")], 2: [pick_ray(pose.residue(2), "OG", "CB")] }
ATOM 8 HA SER A 1 4.525 0.411 -1.793 1.00 0.00 H ATOM 9 1HB SER A 1 4.783 1.209 -4.524 1.00 0.00 H ATOM 10 2HB SER A 1 5.814 1.615 -3.161 1.00 0.00 H ATOM 11 HG SER A 1 6.258 -0.895 -3.881 1.00 0.00 H HETATM 12 CV A__ A 2 3.512 -1.512 -7.034 1.00 0.00 X HETATM 13 NZ A__ A 2 4.049 -1.531 -5.683 1.00 0.00 N HETATM 14 1HZ A__ A 2 4.411 -0.616 -5.451 1.00 0.00 H HETATM 15 2HZ A__ A 2 3.316 -1.777 -5.031 1.00 0.00 H HETATM 16 3HZ A__ A 2 4.794 -2.211 -5.622 1.00 0.00 H TER CONECT 12 13 CONECT 13 12 14 15 16 CONECT 14 13 CONECT 15 13 CONECT 16 13 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [pick_ray(pose.residue(1), "HG", "OG")], 2: [ pick_ray(pose.residue(2), "1HZ", "NZ"), pick_ray(pose.residue(2), "2HZ", "NZ"), pick_ray(pose.residue(2), "3HZ", "NZ") ] } sc_acceptor = {1: [pick_ray(pose.residue(1), "OG", "CB")]}
ATOM 5 N SER A 2 7.756 -0.439 -5.359 1.00 0.00 N ATOM 6 CA SER A 2 7.794 -1.267 -4.159 1.00 0.00 C ATOM 7 C SER A 2 7.667 -0.419 -2.900 1.00 0.00 C ATOM 8 O SER A 2 8.086 0.738 -2.875 1.00 0.00 O ATOM 9 CB SER A 2 9.083 -2.064 -4.116 1.00 0.00 C ATOM 10 OG SER A 2 9.881 -1.788 -5.234 1.00 0.00 O ATOM 11 H SER A 2 8.106 0.507 -5.315 1.00 0.00 H ATOM 12 HA SER A 2 6.952 -1.961 -4.191 1.00 0.00 H ATOM 13 1HB SER A 2 9.630 -1.821 -3.206 1.00 0.00 H ATOM 14 2HB SER A 2 8.852 -3.128 -4.084 1.00 0.00 H ATOM 15 HG SER A 2 9.394 -1.147 -5.756 1.00 0.00 H TER CONECT 1 2 CONECT 2 1 3 4 CONECT 3 2 CONECT 4 2 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = {2: [pick_ray(pose.residue(2), "HG", "OG")]} sc_acceptor = { 1: [ pick_ray(pose.residue(1), "OE1", "CD"), pick_ray(pose.residue(1), "OE2", "CD") ], 2: [pick_ray(pose.residue(2), "OG", "CB")] }
ATOM 40 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 41 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 42 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 43 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 44 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 45 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 46 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 47 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = { 2: [ pick_ray(pose.residue(2), "HE", "NE"), pick_ray(pose.residue(2), "1HH1", "NH1"), pick_ray(pose.residue(2), "2HH1", "NH1"),
ATOM 30 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 31 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 32 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 33 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 34 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 35 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 36 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 37 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = {2: [pick_ray(pose.residue(2), "HG1", "OG1")]} sc_acceptor = {2: [pick_ray(pose.residue(2), "OG1", "CB")]} cat_pi = []
ATOM 38 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 39 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 40 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 41 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 42 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 43 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 44 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 45 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = { 2: [ pick_ray(pose.residue(2), "1HZ", "NZ"), pick_ray(pose.residue(2), "2HZ", "NZ"), pick_ray(pose.residue(2), "3HZ", "NZ")
ATOM 8 HA SER A 1 9.204 0.990 1.080 1.00 0.00 H ATOM 9 1HB SER A 1 10.993 0.232 -1.015 1.00 0.00 H ATOM 10 2HB SER A 1 11.040 -0.215 0.684 1.00 0.00 H ATOM 11 HG SER A 1 9.103 -1.558 -0.523 1.00 0.00 H ATOM 12 N SER A 2 9.807 -1.298 -0.973 1.00 0.00 N ATOM 13 CA SER A 2 8.484 -1.352 -1.582 1.00 0.00 C ATOM 14 C SER A 2 7.533 -2.211 -0.759 1.00 0.00 C ATOM 15 O SER A 2 7.953 -3.156 -0.093 1.00 0.00 O ATOM 16 CB SER A 2 8.581 -1.899 -2.993 1.00 0.00 C ATOM 17 OG SER A 2 9.908 -2.202 -3.324 1.00 0.00 O ATOM 18 H SER A 2 10.132 -2.087 -0.431 1.00 0.00 H ATOM 19 HA SER A 2 8.081 -0.339 -1.625 1.00 0.00 H ATOM 20 1HB SER A 2 7.968 -2.796 -3.078 1.00 0.00 H ATOM 21 2HB SER A 2 8.187 -1.166 -3.695 1.00 0.00 H ATOM 22 HG SER A 2 10.432 -1.979 -2.550 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [pick_ray(pose.residue(1), "HG", "OG")], 2: [pick_ray(pose.residue(2), "HG", "OG")] } sc_acceptor = { 1: [pick_ray(pose.residue(1), "OG", "CB")], 2: [pick_ray(pose.residue(2), "OG", "CB")] }
ATOM 40 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 41 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 42 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 43 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 44 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 45 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 46 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 47 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = {2: [pick_ray(pose.residue(2), "HE1", "NE1")]} sc_acceptor = {} cat_pi = [(pick_ray(pose.residue(2), "NE1",
ATOM 30 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 31 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 32 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 33 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 34 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 35 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 36 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 37 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = {} sc_acceptor = {} cat_pi = []
ATOM 30 O ALA A 3 8.260 5.868 1.023 1.00 0.00 O ATOM 31 OXT ALA A 3 8.596 5.737 -1.023 1.00 0.00 O ATOM 32 CB ALA A 3 8.190 3.050 -1.199 1.00 0.00 C ATOM 33 H ALA A 3 5.710 4.705 -0.000 1.00 0.00 H ATOM 34 HA ALA A 3 7.999 3.333 0.913 1.00 0.00 H ATOM 35 1HB ALA A 3 9.280 3.059 -1.185 1.00 0.00 H ATOM 36 2HB ALA A 3 7.835 2.021 -1.154 1.00 0.00 H ATOM 37 3HB ALA A 3 7.835 3.516 -2.117 1.00 0.00 H TER """ pose = Pose() pose_from_pdbstring(pose, contents) n_rays = { 1: pick_ray(pose.residue(1), "1H", "N"), 2: pick_ray(pose.residue(2), "H", "N"), 3: pick_ray(pose.residue(3), "H", "N") } c_rays = { 1: pick_ray(pose.residue(1), "O", "C"), 2: pick_ray(pose.residue(2), "O", "C"), 3: pick_ray(pose.residue(3), "O", "C") } sc_donor = { 2: [ pick_ray(pose.residue(2), "1HD2", "ND2"), pick_ray(pose.residue(2), "2HD2", "ND2") ]
TER CONECT 1 2 CONECT 2 1 3 4 CONECT 3 2 CONECT 4 2 CONECT 5 6 CONECT 6 5 7 8 CONECT 7 6 CONECT 8 6 9 10 CONECT 9 8 CONECT 10 8 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 2: [ pick_ray(pose.residue(2), "1HD2", "ND2"), pick_ray(pose.residue(2), "2HD2", "ND2") ] } sc_acceptor = { 1: [ pick_ray(pose.residue(1), "OE1", "CD"), pick_ray(pose.residue(1), "OE2", "CD") ], 2: [pick_ray(pose.residue(2), "OD1", "CG")] }
HETATM 9 3HZ A__ A 2 5.292 -0.607 -4.650 1.00 0.00 H TER CONECT 1 2 CONECT 2 1 3 4 CONECT 3 2 CONECT 4 2 CONECT 5 6 CONECT 6 5 7 8 9 CONECT 7 6 CONECT 8 6 CONECT 9 6 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 2: [ pick_ray(pose.residue(2), "1HZ", "NZ"), pick_ray(pose.residue(2), "2HZ", "NZ"), pick_ray(pose.residue(2), "3HZ", "NZ") ] } sc_acceptor = { 1: [ pick_ray(pose.residue(1), "OE1", "CD"), pick_ray(pose.residue(1), "OE2", "CD") ] }
ATOM 20 2HB SER A 2 3.626 -3.951 -6.042 1.00 0.00 H ATOM 21 HG SER A 2 3.450 -3.695 -3.412 1.00 0.00 H TER CONECT 1 2 CONECT 2 1 3 6 CONECT 3 2 4 5 CONECT 4 3 7 8 CONECT 5 3 9 10 CONECT 6 2 CONECT 7 4 CONECT 8 4 CONECT 9 5 CONECT 10 5 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "HE", "NE"), pick_ray(pose.residue(1), "1HH1", "NH1"), pick_ray(pose.residue(1), "2HH1", "NH1"), pick_ray(pose.residue(1), "1HH2", "NH2"), pick_ray(pose.residue(1), "2HH2", "NH2") ], 2: [pick_ray(pose.residue(2), "HG", "OG")] } sc_acceptor = {2: [pick_ray(pose.residue(2), "OG", "CB")]}
CONECT 6 5 7 10 CONECT 7 6 8 9 CONECT 8 7 11 12 CONECT 9 7 13 14 CONECT 10 6 CONECT 11 8 CONECT 12 8 CONECT 13 9 CONECT 14 9 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 2: [ pick_ray(pose.residue(2), "HE", "NE"), pick_ray(pose.residue(2), "1HH1", "NH1"), pick_ray(pose.residue(2), "2HH1", "NH1"), pick_ray(pose.residue(2), "1HH2", "NH2"), pick_ray(pose.residue(2), "2HH2", "NH2") ] } sc_acceptor = { 1: [ pick_ray(pose.residue(1), "OE1", "CD"), pick_ray(pose.residue(1), "OE2", "CD") ] }
CONECT 9 8 10 11 CONECT 10 9 13 14 CONECT 11 9 15 16 CONECT 12 8 CONECT 13 10 CONECT 14 10 CONECT 15 11 CONECT 16 11 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "1HD2", "ND2"), pick_ray(pose.residue(1), "2HD2", "ND2") ], 2: [ pick_ray(pose.residue(2), "HE", "NE"), pick_ray(pose.residue(2), "1HH1", "NH1"), pick_ray(pose.residue(2), "2HH1", "NH1"), pick_ray(pose.residue(2), "1HH2", "NH2"), pick_ray(pose.residue(2), "2HH2", "NH2") ] } sc_acceptor = { 1: [ pick_ray(pose.residue(1), "OD1", "CG") ]
CONECT 3 2 CONECT 4 2 5 6 CONECT 5 4 CONECT 6 4 CONECT 7 8 CONECT 8 7 9 10 CONECT 9 8 CONECT 10 8 11 12 CONECT 11 10 CONECT 12 10 """ pose = Pose() pose_from_pdbstring(pose, contents) sc_donor = { 1: [ pick_ray(pose.residue(1), "1HD2", "ND2"), pick_ray(pose.residue(1), "2HD2", "ND2") ], 2: [ pick_ray(pose.residue(2), "1HD2", "ND2"), pick_ray(pose.residue(2), "2HD2", "ND2") ] } sc_acceptor = { 1: [pick_ray(pose.residue(1), "OD1", "CG")], 2: [pick_ray(pose.residue(2), "OD1", "CG")] }