Last week I said the cell fate answers were hiding in the worm’s family tree. This week I went and got them.
The source is one DevoGraph / DevoLearn workbook, name-function-each-cell: 1,357 rows of cell address plus a human sentence describing what it became.
Four things went wrong.
1. Names didn’t match. The sheet writes AB plapaaaapp. My data writes ABplapaaaapp. 47% of rows have stray spaces. Strip whitespace or silently lose half your reference.
2. Wrong life stage. 786 rows describe post-hatching cells (addresses with a dot). Dropped. Leaves 567 unique embryonic cells.
3. Rule order matters. “Pharyngeal muscle” contains muscle but belongs to pharynx (37 cells). Sheath and socket cells are glia, not neurons (105 cells). Check specific rules first or mislabel 142 cells with no error message.
4. Most cells aren’t in the sheet. It only lists finished cells. Mine are still dividing. So: look it up, else vote among descendants, else borrow from an ancestor.
Only 1 in 6 could just be looked up.
For the votes I record purity, the share of descendants that agree, with a cutoff at 0.6. ABa has 183 descendants and only 33% agree, so it stays “undecided” instead of being forced into a box.
370 cells unanimous. 188 sent to undecided.
Final: 2,506 usable targets from 2,769 cells (90.5%). The other 9.5% are masked out of the loss, not guessed. After last month’s fake 96%, I’d rather have a labeled gap than a fake label.
Data: cell_fate.csv (2,769 rows). method and purity columns let you audit every call I made.
More soon.