Why are Dalton and Grams / Moles not equivalent units?

The following code throws an error:

UnitConvert[Quantity["Daltons"], "Grams"/"Moles"]


Why?

• This answer to an older question by the OP has an apropos discussion. – J. M.'s torpor Sep 1 '17 at 2:52
• @J.M. I had forgotten that :) Thanks. – becko Sep 1 '17 at 7:13

As nikie has pointed out, Mathematica considers the Dalton to be a unit of mass. It is also synonymous with the unified atomic mass unit (u).

UnitConvert[Quantity["Daltons"], "u"]


1.0000000u

Mathematica also distinguishes between Molecular Mass and Molar Mass and the default unit for MolecularMass appears to be unified atomic mass unit (u) rather than the Dalton

{#, UnitConvert[#, "Daltons"]}& @ ChemicalData["Water", "MolecularMass"]


{18.0153u,18.0153daltons}

Compare with:

{#, UnitConvert[#, "Daltons"], UnitConvert[#, "u"]}& ChemicalData["Water", "MolarMass"]


{18.0153g/mol,1.08491*10^25daltons/mol,1.08491*10^25u/mol}

{#, UnitConvert[#, "Daltons"]} &@ ChemicalData["Water", "MolecularMass"]    // QuantityUnit


$\{\text{AtomicMassUnit},\text{Daltons}\}$

and

{#, UnitConvert[#, "Daltons"], UnitConvert[#, "u"]} & @
ChemicalData["Water", "MolarMass"] // QuantityUnit


$\left\{\frac{\text{Grams}}{\text{Moles}},\frac{\text{Daltons}}{\text{Moles}},\frac{\text{AtomicMassUnit}}{\text{Moles}}\right\}$

There is also Kilodaltons, of course:

ProteinData[6400, "MolecularWeight"] // UnitConvert[#, "Kilodaltons"] &


33.02400kDa

Despite the wikipedia quote, I don't think biochemists use the definition 1 Da = 1 g/mol. For a good discussion of the Dalton and the confusion it can cause, see To land on a dalton by Susan Dewhurst, available here

• I upvoted for the article, thanks for linking to it! – J. M.'s torpor Sep 2 '17 at 1:43

I never heard the unit "dalton" before, but according to Wikipedia, 1 dalton equals $1.66053904\times 10^{−27}\, \mathrm{kg}$. That's what Mathematica says, too:

UnitConvert[Quantity["Daltons"], "Kilograms"]


1.6605390*10^-27 kg

But it's weird that neither UnitConvert nor UnitSimplify seem to know that mol is a dimensionless unit, so it could be replaced with a dimensionless constant.

If I explicitly ask for a unitless value using UnitSimplify with the option UnityDimensions, I get 1 as a result, which seems strange to me:

UnitSimplify[Quantity[1, "Moles"], UnityDimensions -> {"AmountUnit"}]


1

• See also this, under Molar Mass: "The dalton, symbol Da, is also sometimes used as a unit of molar mass, especially in biochemistry, with the definition 1 Da = 1 g/mol, despite the fact that it is strictly a unit of mass" – b3m2a1 Aug 31 '17 at 18:40
• @b3m2a1 Ah, that's the answer then. Mathematica is using the definition of Dalton as a mass unit. – becko Aug 31 '17 at 18:46
• I wouldn't like my moles to be simplified away as dimensionless constants (even if they are). I prefer Mathematica to carry them around. – becko Aug 31 '17 at 18:47
• Da is commonly used in the (biological) mass spectrometry world (that I was in for about 19 years), – Peter Mortensen Sep 1 '17 at 1:59
• As @Peter says, it's a common unit in biochemistry; one would often see entries in the PDB giving the molecular mass in kilodaltons. – J. M.'s torpor Sep 1 '17 at 2:50

Yes, they are:

   << Units
Convert[1 Dalton, Gram/Mole]
`
• It should be noted that the above uses the old Units package, which is obsolete. – theorist Jan 10 '20 at 2:06