"H" atom refining occupancy with previous altconf residue in sequence
After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week. Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden. This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2. I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files. Below I've pasted a couple residues from one of my PDBs. I added a ***** to mark the offending H with the wrong occupancy. -Alex Scouras ATOM 668 N CMET A 29 -17.970 6.464 59.720 0.21 10.72 N ANISOU 668 N CMET A 29 1641 1300 1133 -328 -379 -50 N ATOM 669 CA CMET A 29 -17.578 5.189 60.316 0.21 9.05 C ANISOU 669 CA CMET A 29 1545 882 1012 -248 -350 -140 C ATOM 670 C CMET A 29 -17.248 5.317 61.797 0.21 7.83 C ANISOU 670 C CMET A 29 1363 666 947 173 -134 166 C ATOM 671 O CMET A 29 -17.496 4.395 62.578 0.21 7.92 O ANISOU 671 O CMET A 29 1187 751 1071 371 -145 338 O ATOM 672 CB CMET A 29 -16.376 4.609 59.573 0.21 9.09 C ANISOU 672 CB CMET A 29 1561 834 1059 -243 -283 -203 C ATOM 673 CG CMET A 29 -16.681 4.210 58.145 0.21 9.05 C ANISOU 673 CG CMET A 29 1529 756 1154 -28 -331 -235 C ATOM 674 SD CMET A 29 -18.049 3.042 58.009 0.21 13.05 S ANISOU 674 SD CMET A 29 2356 1325 1279 -218 -284 -50 S ATOM 675 CE CMET A 29 -17.505 1.757 59.124 0.21 12.06 C ANISOU 675 CE CMET A 29 1866 1485 1232 -630 -667 420 C ATOM 676 H CMET A 29 -17.333 6.878 59.318 0.21 12.87 H ATOM 677 HA CMET A 29 -18.320 4.557 60.216 0.21 10.86 H ATOM 678 HB2CMET A 29 -15.671 5.275 59.551 0.21 10.91 H ATOM 679 HB3CMET A 29 -16.069 3.819 60.044 0.21 10.91 H ATOM 680 HG2CMET A 29 -16.916 5.004 57.640 0.21 10.86 H ATOM 681 HG3CMET A 29 -15.894 3.794 57.761 0.21 10.86 H ATOM 682 HE1CMET A 29 -18.164 1.059 59.140 0.21 14.48 H ATOM 683 HE2CMET A 29 -16.666 1.409 58.813 0.21 14.48 H ATOM 684 HE3CMET A 29 -17.401 2.130 60.002 0.21 14.48 H ATOM 685 N MET A 30 -16.667 6.445 62.187 1.00 6.77 N ANISOU 685 N MET A 30 1361 564 647 -30 -56 18 N ATOM 686 CA MET A 30 -16.416 6.699 63.606 1.00 7.66 C ANISOU 686 CA MET A 30 1362 946 601 -42 -173 2 C ATOM 687 C MET A 30 -17.759 6.724 64.367 1.00 7.62 C ANISOU 687 C MET A 30 1310 944 641 -9 -24 -22 C ATOM 688 O MET A 30 -17.852 6.212 65.486 1.00 9.05 O ANISOU 688 O MET A 30 1571 1151 718 84 98 231 O ATOM 689 CB MET A 30 -15.620 7.987 63.790 1.00 7.65 C ANISOU 689 CB MET A 30 1299 894 714 26 -120 -166 C ATOM 690 CG MET A 30 -14.229 7.965 63.231 1.00 8.62 C ANISOU 690 CG MET A 30 1464 1072 741 31 -163 -10 C ATOM 691 SD MET A 30 -13.130 6.745 64.006 1.00 9.04 S ANISOU 691 SD MET A 30 1555 961 919 105 -180 -94 S ATOM 692 CE MET A 30 -12.812 7.527 65.563 1.00 9.77 C ANISOU 692 CE MET A 30 1540 1284 889 150 -190 -62 C ATOM 693 H MET A 30 -16.395 7.062 61.653 0.21 8.12 H ***** ATOM 694 HA MET A 30 -15.872 5.965 63.962 1.00 9.19 H ATOM 695 HB2 MET A 30 -16.099 8.709 63.352 1.00 9.18 H ATOM 696 HB3 MET A 30 -15.550 8.173 64.739 1.00 9.18 H ATOM 697 HG2 MET A 30 -14.278 7.758 62.284 1.00 10.35 H ATOM 698 HG3 MET A 30 -13.831 8.840 63.354 1.00 10.35 H ATOM 699 HE1 MET A 30 -12.228 6.968 66.079 1.00 11.73 H ATOM 700 HE2 MET A 30 -12.397 8.378 65.406 1.00 11.73 H ATOM 701 HE3 MET A 30 -13.644 7.648 66.026 1.00 11.73 H
On Thu, Oct 25, 2012 at 8:05 PM, Alexander Scouras
After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week.
Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden.
This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2.
I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files.
Very interesting - this is also reproducible with a simple test case and the latest code. Judging from the revision history, it looks like this probably would have happened with version 1.8 too. I am not entirely sure what the code is doing, but I think it is partly based on the assumption that if you have an alternate conformation for the C and/or CA atoms of a residue, the H atom for the next residue will also have alternate conformations. This is in fact what phenix.ready_set will do - if you re-run it on your input PDB file, you will have A/B/C conformations for Met30 H. So I'm inclined to suggest simply doing this (it is the most chemically sensible approach), but the behavior of phenix.refine when no alternate conformer is present for H does appear to be a bug. -Nat
I was wondering if something like that was the idea, though I guess I might have expected the main chain nitrogen to also get an alternate conformation. Hydrogens are just second class atoms I guess, and that dihedral would be more important than actually moving the N.
When running iterative refinement between Phenix and Coot, adding altconfs as they come up, should you regularly be running ready_set (or anything else) after? I always just save the coordinates and then load that pdb in the next round of phenix.refine.
It looks like my previous refinements of these structures were using the 1.7 branch, so it could have been introduced in 1.8.0 indeed.
Running phenix.ready_set did not initially correct the hydrogens, probably because it didn't know what to do with hydrogens in partial occupancies. It worked fine after I removed all hydrogens from the structure though.
On Oct 26, 2012, at 11:39 AM, Nathaniel Echols
On Thu, Oct 25, 2012 at 8:05 PM, Alexander Scouras
wrote: After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week.
Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden.
This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2.
I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files.
Very interesting - this is also reproducible with a simple test case and the latest code. Judging from the revision history, it looks like this probably would have happened with version 1.8 too. I am not entirely sure what the code is doing, but I think it is partly based on the assumption that if you have an alternate conformation for the C and/or CA atoms of a residue, the H atom for the next residue will also have alternate conformations. This is in fact what phenix.ready_set will do - if you re-run it on your input PDB file, you will have A/B/C conformations for Met30 H. So I'm inclined to suggest simply doing this (it is the most chemically sensible approach), but the behavior of phenix.refine when no alternate conformer is present for H does appear to be a bug.
-Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
On Fri, Oct 26, 2012 at 1:06 PM, Alexander Scouras
I was wondering if something like that was the idea, though I guess I might have expected the main chain nitrogen to also get an alternate conformation. Hydrogens are just second class atoms I guess, and that dihedral would be more important than actually moving the N.
When running iterative refinement between Phenix and Coot, adding altconfs as they come up, should you regularly be running ready_set (or anything else) after? I always just save the coordinates and then load that pdb in the next round of phenix.refine.
I would continually run phenix.ready_set in this case - actually, if you're using the phenix.refine GUI I think you can just click "Automatically add hydrogens to model" and everything else will be done automatically. (If not, that's a bug too!) Unless you are performing neutron refinement or some very specialized high-resolution enzymology, it is unlikely that you will actually care about preserving the hydrogen positions from round to round anyway. -Nat
Sorry for not getting back to you sooner.
I'm working at better than 1.0A resolution for some structures, so am able to determine histidine protonation state in some cases. So yes, I turned off the automatic hydrogen additions. Now that I understand the behavior, I can work with it. Clearing up the histidines can wait until the end of refinement, after I've worked out the altconfs anyway.
Jeff: If you still want my refinement history, I can send it along, but it sounds like (according to Pavel) this is the expected behavior and I just need to change my refinement routine a little bit.
On Oct 26, 2012, at 1:20 PM, Nathaniel Echols
On Fri, Oct 26, 2012 at 1:06 PM, Alexander Scouras
wrote: I was wondering if something like that was the idea, though I guess I might have expected the main chain nitrogen to also get an alternate conformation. Hydrogens are just second class atoms I guess, and that dihedral would be more important than actually moving the N.
When running iterative refinement between Phenix and Coot, adding altconfs as they come up, should you regularly be running ready_set (or anything else) after? I always just save the coordinates and then load that pdb in the next round of phenix.refine.
I would continually run phenix.ready_set in this case - actually, if you're using the phenix.refine GUI I think you can just click "Automatically add hydrogens to model" and everything else will be done automatically. (If not, that's a bug too!) Unless you are performing neutron refinement or some very specialized high-resolution enzymology, it is unlikely that you will actually care about preserving the hydrogen positions from round to round anyway.
-Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
Hi Alex, it's a result of inconsistent behavior of phenix.reduce and phenix.ready_set (as Nat me pointed out), and so I overlooked this caveat in handling in phenix.refine. This will be fixed some time in the future. Pavel On 10/30/12 1:57 PM, Alexander Scouras wrote:
Sorry for not getting back to you sooner.
I'm working at better than 1.0A resolution for some structures, so am able to determine histidine protonation state in some cases. So yes, I turned off the automatic hydrogen additions. Now that I understand the behavior, I can work with it. Clearing up the histidines can wait until the end of refinement, after I've worked out the altconfs anyway.
Jeff: If you still want my refinement history, I can send it along, but it sounds like (according to Pavel) this is the expected behavior and I just need to change my refinement routine a little bit.
On Oct 26, 2012, at 1:20 PM, Nathaniel Echols
wrote: I was wondering if something like that was the idea, though I guess I might have expected the main chain nitrogen to also get an alternate conformation. Hydrogens are just second class atoms I guess, and that dihedral would be more important than actually moving the N.
When running iterative refinement between Phenix and Coot, adding altconfs as they come up, should you regularly be running ready_set (or anything else) after? I always just save the coordinates and then load that pdb in the next round of phenix.refine. I would continually run phenix.ready_set in this case - actually, if you're using the phenix.refine GUI I think you can just click "Automatically add hydrogens to model" and everything else will be done automatically. (If not, that's a bug too!) Unless you are
On Fri, Oct 26, 2012 at 1:06 PM, Alexander Scouras
wrote: performing neutron refinement or some very specialized high-resolution enzymology, it is unlikely that you will actually care about preserving the hydrogen positions from round to round anyway. -Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
Hi, I did not look closely yet but my understanding is that its position is dictated by the next to it residue that has non-blank altlocs, and therefore this hydrogen inherits the conformers. So this behavior is expected. I hoped Jeff will comment on this as he was the first who explained it to me. Pavel On 10/26/12 11:39 AM, Nathaniel Echols wrote:
After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week.
Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden.
This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2.
I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files. Very interesting - this is also reproducible with a simple test case and the latest code. Judging from the revision history, it looks like
On Thu, Oct 25, 2012 at 8:05 PM, Alexander Scouras
wrote: this probably would have happened with version 1.8 too. I am not entirely sure what the code is doing, but I think it is partly based on the assumption that if you have an alternate conformation for the C and/or CA atoms of a residue, the H atom for the next residue will also have alternate conformations. This is in fact what phenix.ready_set will do - if you re-run it on your input PDB file, you will have A/B/C conformations for Met30 H. So I'm inclined to suggest simply doing this (it is the most chemically sensible approach), but the behavior of phenix.refine when no alternate conformer is present for H does appear to be a bug. -Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
On Fri, Oct 26, 2012 at 1:07 PM, Pavel Afonine
I did not look closely yet but my understanding is that its position is dictated by the next to it residue that has non-blank altlocs, and therefore this hydrogen inherits the conformers. So this behavior is expected. I hoped Jeff will comment on this as he was the first who explained it to me.
This explains the behavior of phenix.ready_set, but not the change to occupancy made by phenix.refine. -Nat
The current behavior is intended one and asserted by regression test: phenix_regression/refinement/tst_refinement_occ_of_h3.py If you remove hydrogens from that PDB file, and then add them back, Reduce will add H on MET30, and its occupancy will be inherited from atoms in MET29 that define its position. phenix.refine in turn will pick up that for occupancy refinement according it its default behavior. Jeff: the occupancy of H in MET30 does match the occupancy of relevant atoms in preceding residue (MET29). I verified this with this specific example, and also this is asserted in the above test. We discussed this multiple times in the past and current behavior is the consensus one. If this is not what we want then we need to fix Reduce. Pavel On 10/26/12 1:17 PM, Nathaniel Echols wrote:
On Fri, Oct 26, 2012 at 1:07 PM, Pavel Afonine
wrote: I did not look closely yet but my understanding is that its position is dictated by the next to it residue that has non-blank altlocs, and therefore this hydrogen inherits the conformers. So this behavior is expected. I hoped Jeff will comment on this as he was the first who explained it to me. This explains the behavior of phenix.ready_set, but not the change to occupancy made by phenix.refine.
-Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
That is definitely some strange behavior going on there. The position of
the N-H atom is in part determined by the position of carbonyl carbon in
the preceding residue, but usually it would have the matching altID
associated with it. In the example you've sent, it looks like Reduce may
not be adding this hydrogen correctly.
Would you be willing to send me your entire PDB file directly (NOT to the
list) so that I could see why Reduce is behaving that way?
I'm not sure about the occupancy problem, though. That should only happen
if there were multiple positions for that hydrogen.
Jeff
On Fri, Oct 26, 2012 at 4:07 PM, Pavel Afonine
Hi,
I did not look closely yet but my understanding is that its position is dictated by the next to it residue that has non-blank altlocs, and therefore this hydrogen inherits the conformers. So this behavior is expected. I hoped Jeff will comment on this as he was the first who explained it to me.
Pavel
On 10/26/12 11:39 AM, Nathaniel Echols wrote:
On Thu, Oct 25, 2012 at 8:05 PM, Alexander Scouras
wrote: After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week.
Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden.
This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2.
I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files.
Very interesting - this is also reproducible with a simple test case and the latest code. Judging from the revision history, it looks like this probably would have happened with version 1.8 too. I am not entirely sure what the code is doing, but I think it is partly based on the assumption that if you have an alternate conformation for the C and/or CA atoms of a residue, the H atom for the next residue will also have alternate conformations. This is in fact what phenix.ready_set will do - if you re-run it on your input PDB file, you will have A/B/C conformations for Met30 H. So I'm inclined to suggest simply doing this (it is the most chemically sensible approach), but the behavior of phenix.refine when no alternate conformer is present for H does appear to be a bug.
-Nat ______________________________**_________________ phenixbb mailing list [email protected] http://phenix-online.org/**mailman/listinfo/phenixbbhttp://phenix-online.org/mailman/listinfo/phenixbb
______________________________**_________________ phenixbb mailing list [email protected] http://phenix-online.org/**mailman/listinfo/phenixbbhttp://phenix-online.org/mailman/listinfo/phenixbb
Hi Alex, phenix.refine from next available build will not try to match occupancy of H atom to occupancy of relevant conformer in preceding residue if it cannot be done unambiguously. So please update to the next available nightly build (hopefully tomorrow - keep eye on download page) and that should fix the problem. Let me know otherwise. Test that exercises this: phenix_regression/refinement/tst_refinement_occ_of_h5.py Pavel On 10/25/12 8:05 PM, Alexander Scouras wrote:
After a series of residues (1+) with alternate conformations, the H atom of the next residue seems to lock its occupancy to that of the final conformation of the previous residue. Hence I'm getting several H's with 0.1-0.5 occupancy on single conformation residues, where the entire rest of the residue has occupancy 1. This happens after every altconf series, and showed up in two separate structures I've worked on this week.
Within a series of 2+ residues with altconfs, the H's refine correctly with their altconf groups. So it isn't just that all subsequent residue's H's are getting overridden.
This behavior seems to have started with 1.8.1-1168, or at least previous refinements of the same structure didn't do this. 64 bit build on Retina MBP running OS X 10.8.2.
I couldn't google any reference to this behavior, so assuming it's a new bug I can send along source files.
Below I've pasted a couple residues from one of my PDBs. I added a ***** to mark the offending H with the wrong occupancy.
-Alex Scouras
ATOM 668 N CMET A 29 -17.970 6.464 59.720 0.21 10.72 N ANISOU 668 N CMET A 29 1641 1300 1133 -328 -379 -50 N ATOM 669 CA CMET A 29 -17.578 5.189 60.316 0.21 9.05 C ANISOU 669 CA CMET A 29 1545 882 1012 -248 -350 -140 C ATOM 670 C CMET A 29 -17.248 5.317 61.797 0.21 7.83 C ANISOU 670 C CMET A 29 1363 666 947 173 -134 166 C ATOM 671 O CMET A 29 -17.496 4.395 62.578 0.21 7.92 O ANISOU 671 O CMET A 29 1187 751 1071 371 -145 338 O ATOM 672 CB CMET A 29 -16.376 4.609 59.573 0.21 9.09 C ANISOU 672 CB CMET A 29 1561 834 1059 -243 -283 -203 C ATOM 673 CG CMET A 29 -16.681 4.210 58.145 0.21 9.05 C ANISOU 673 CG CMET A 29 1529 756 1154 -28 -331 -235 C ATOM 674 SD CMET A 29 -18.049 3.042 58.009 0.21 13.05 S ANISOU 674 SD CMET A 29 2356 1325 1279 -218 -284 -50 S ATOM 675 CE CMET A 29 -17.505 1.757 59.124 0.21 12.06 C ANISOU 675 CE CMET A 29 1866 1485 1232 -630 -667 420 C ATOM 676 H CMET A 29 -17.333 6.878 59.318 0.21 12.87 H ATOM 677 HA CMET A 29 -18.320 4.557 60.216 0.21 10.86 H ATOM 678 HB2CMET A 29 -15.671 5.275 59.551 0.21 10.91 H ATOM 679 HB3CMET A 29 -16.069 3.819 60.044 0.21 10.91 H ATOM 680 HG2CMET A 29 -16.916 5.004 57.640 0.21 10.86 H ATOM 681 HG3CMET A 29 -15.894 3.794 57.761 0.21 10.86 H ATOM 682 HE1CMET A 29 -18.164 1.059 59.140 0.21 14.48 H ATOM 683 HE2CMET A 29 -16.666 1.409 58.813 0.21 14.48 H ATOM 684 HE3CMET A 29 -17.401 2.130 60.002 0.21 14.48 H ATOM 685 N MET A 30 -16.667 6.445 62.187 1.00 6.77 N ANISOU 685 N MET A 30 1361 564 647 -30 -56 18 N ATOM 686 CA MET A 30 -16.416 6.699 63.606 1.00 7.66 C ANISOU 686 CA MET A 30 1362 946 601 -42 -173 2 C ATOM 687 C MET A 30 -17.759 6.724 64.367 1.00 7.62 C ANISOU 687 C MET A 30 1310 944 641 -9 -24 -22 C ATOM 688 O MET A 30 -17.852 6.212 65.486 1.00 9.05 O ANISOU 688 O MET A 30 1571 1151 718 84 98 231 O ATOM 689 CB MET A 30 -15.620 7.987 63.790 1.00 7.65 C ANISOU 689 CB MET A 30 1299 894 714 26 -120 -166 C ATOM 690 CG MET A 30 -14.229 7.965 63.231 1.00 8.62 C ANISOU 690 CG MET A 30 1464 1072 741 31 -163 -10 C ATOM 691 SD MET A 30 -13.130 6.745 64.006 1.00 9.04 S ANISOU 691 SD MET A 30 1555 961 919 105 -180 -94 S ATOM 692 CE MET A 30 -12.812 7.527 65.563 1.00 9.77 C ANISOU 692 CE MET A 30 1540 1284 889 150 -190 -62 C ATOM 693 H MET A 30 -16.395 7.062 61.653 0.21 8.12 H ***** ATOM 694 HA MET A 30 -15.872 5.965 63.962 1.00 9.19 H ATOM 695 HB2 MET A 30 -16.099 8.709 63.352 1.00 9.18 H ATOM 696 HB3 MET A 30 -15.550 8.173 64.739 1.00 9.18 H ATOM 697 HG2 MET A 30 -14.278 7.758 62.284 1.00 10.35 H ATOM 698 HG3 MET A 30 -13.831 8.840 63.354 1.00 10.35 H ATOM 699 HE1 MET A 30 -12.228 6.968 66.079 1.00 11.73 H ATOM 700 HE2 MET A 30 -12.397 8.378 65.406 1.00 11.73 H ATOM 701 HE3 MET A 30 -13.644 7.648 66.026 1.00 11.73 H _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
participants (4)
-
Alexander Scouras
-
Jeff Headd
-
Nathaniel Echols
-
Pavel Afonine