Warning: super-technical post ahead, but I have made this point in oral discussions at least a few times, so I thought I would write it up. It is a trivial algebraic manipulation, but because “ℓ₁ norm” sounds too mathy for ecologists while “Bray-curtis” sounds too ecological and ad-hoc for mathematically minded people, it’s good to see that it’s the same thing on normalized data.

Assuming you have two feature vectors, Xᵢ, Xⱼ, if they have been normalized to sum to 1, then the Bray-Curtis dissimilarity is just their ℓ₁ distance, aka Manhattan distance (times ½, which is a natural normalization so that the result is between zero and one).

I have a matrix where the rows are sampleIDs and columns are taxonomic abundances. The rows sum to 100. If I understand your post correctly, to get Bray Curtis, I need to divide each number by 100, so the rows sum to 1.

Then each row represents a vector as your Xs.

The I need to calculate the Manhatten distance between all vectors (rows) I have and the multiply the resulting distance metric by 0.5. The I have the BC distance, is that correct?

Very useful. There’s a sign error in the last two derivation step, I think. Should be a minus sign between the terms of the absolute values…

You are right! fixed.

Hi Luis, Very interesting post! Do you have a useful reference for this?

No, not really.

Hi, thanks for your post.

I have a matrix where the rows are sampleIDs and columns are taxonomic abundances. The rows sum to 100. If I understand your post correctly, to get Bray Curtis, I need to divide each number by 100, so the rows sum to 1.

Then each row represents a vector as your Xs.

The I need to calculate the Manhatten distance between all vectors (rows) I have and the multiply the resulting distance metric by 0.5. The I have the BC distance, is that correct?

Yes, that sounds right.