在遺傳系譜中,X染色體數據對於某些祖先是有用的。這可以很好地說明:X-DNA Inheritance ChartX染色體祖先的Neo4j密碼查詢
我的Neo4j數據庫具有每個Person的節點以及連接他們的父親和母親的關係。每個節點都有屬性(對於Person的性別; M或F)。一位女性有兩條X染色體,一條來自父母。一名男性有一條X染色體,總是來自母親。
可以使用降低看到祖輩參與繼承的性別:
match p=(n:Person{RN:1})-[:father|mother*..20]->m
return m.fullname as FullName
,reduce(status ='', q IN nodes(p)| status + q.sex) AS c
order by length(p), c
所以,開始與男性(RN:1),C:的結果是MM爲他的父親和工頻磁場他的母親,祖父的MMM以及祖父的MFM等等。這種模式表明,當c包含MM(兩個Ms連在一起時),這些不是對起始Person的X染色體的貢獻。
我想刪除任何具有MM模式的節點。用外部代碼很容易做到這一點,但我無法弄清楚如何在密碼查詢中執行此操作。
太好了。它確實有效。花費一點時間(〜750毫秒),但不需要外部代碼進行後期處理。所以這就是我需要的! –