Dear Seraina,
Back in the day, I had a very long discussion with someone else who wanted to do a similar thing: Multimedia File Viewing and Clickable Links are available for Registered Members only!! You need to
There are two salient points to be carried over to your case
1). Branch lengths can mean two things: a priori measures (i.e. millions of years since divergence) or [what is usually meant for model fitting] genetic distance. The latter is a product of evolutionary time and evolutionary rate. Because for a single gene, the evolutionary time is presumably the same for every site, if you hold branch lengths (and here I take them to mean genetic distances) the same for every site, that means that the rate is the same for every site.
In your input tree, what do the branch lengths mean?
2). The reason HyPhy gives you different estimates for 20 sites vs the total alignment is because it estimates model parameters (e.g. AT rate and the base frequencies) either from the first 20 sites, or the whole alignment -- giving different values. Those values will then influence the estimates of site-specific rates. The only way to remove this effect, is to specify the substitution model (base frequencies and substitution rates a priori). I am quite certain this is what DNARates used to do (with F84 model supplied by the user and base frequencies are set to 0.25 or prompted for).
SiteRates2.bf can be modified for this purpose (take a look at the files from the thread I quoted). Let me know if this helps.
Sergei