Statistical test to detect regional excess of observations compared to background observations I have data on the protein position of genetic variants. I want to determine whether there is a region of the proteins with a significant excess of variants relative to controls. 
Consider this example; positions are drawn from a uniform distribution (between 1-100) for cases and controls. Then I add more observations to the cases in a specific region (positions 20-40). 
set.seed(3)
nresidues = 100

cases = sample(1:nresidues, 100, rep=T)
controls = sample(1:nresidues, 100, rep=T)
cases = c(cases, sample(20:40, 40, rep=T))

par(mfrow=c(2, 1))
hist(cases, col="red")
hist(controls, col="blue")

If these observations were drawn from equal sample sizes of 1000, a fisher's-exact test finds a burden signal (p<0.0071), but this does not utilise the positional signal.
fisher.test(rbind(c(100, 900), c(140, 860)))$p 

If I used a two-sample goodness-of-fit test, then this picks up the positional signal (chisq p< 0.00076; ks p< 0.00040) but is essentially two-sided when I am only interested in an excess in cases, as a control excess is expected to be noise. 
breaks = seq(1, nresidues, length.out=10)
case_tab = table(cut(cases, breaks))
control_tab = table(cut(controls, breaks))
chisq.test(rbind(case_tab, control_tab))$p.value

ks.test(cases, controls)$p

My main question here; is there a statistical test or strategy that can better capture this regional excess in burden with superior power to a goodness-of-fit test (because it is one-sided)?
 A: In case you don't know, the function fisher.test(), that you yourself used, has an argument called alternative that allows you to make it one-sided -- and, by the way, with that numbers, you can use the approximate method in prop.test().
So, if you know already some regions where the anomalies you are looking for should take place, you can discard all observations but those in those very regions, because the other ones don't give you any useful information for your testing procedure. Once you do this, you can simply make the test on the observed variants. That is the best you can do to exploit your knowledge and your data. Supposing the region is between position 20 and 40, I'll try to explain myself with some code:
n_cases= sum(cases >= 20 & cases <= 40)
n_controls= sum(controls >= 20 & controls <= 40)
t= rbind(c(n_cases, 1000-n_cases), c(n_controls, 1000-n_controls))
prop.test(t, alternative= 'greater', correct= F)

However, if I got it right, you are not so sure about what regions to control, so you though about general GoF tests like chi-square over bins, or Kolomogorof-Smirnof (better options exist actually, for instance wass_test() of this package). But you correctly stated that they don't sense the difference in absolute frequencies, and on the other hand, the test on proportions does't sense the difference in the observed positions.
Well, this is not bad news really: it means that the two tests (on proportions and on GoF) are independent under H0, and so you can combine them to obtain a test sensitive to both peculiarities of your alternative hypothesis.
If you chose two tests which employ a chi-quare distributed test statistic, you can add the two of them together, and you get a chi-square with a number of d.f. that is the sum of those of the two tests. Otherwise you can use Fisher's method.
