我已經加載了DNA SNP的分層樹(DAG)。我想確定最低的共同祖先。Neo4j最低共同祖先節點未找到
此查詢的工作,產生一個正確的節點:
Match (n:SNPNode{SNP:'R-Z11'}), (m:SNPNode{SNP:'R-BY13828'})
match path=(n)-[:SNPParent*..99]->(MRCA)<-[:SNPParent*..99]-(m)
return MRCA.SNP
然而,這一個產生任何結果:
Match (n:SNPNode{SNP:'R-Z11'}), (m:SNPNode{SNP:'R-S25289'})
match path=(n)-[:SNPParent*..99]->(MRCA)<-[:SNPParent*..99]-(m)
return MRCA.SNP
即使兩個查詢尋求兩者產量的祖先節點其中一些共享:
MATCH p=(n:SNPNode{SNP:'R-Z11'})-[r:SNPParent*..66]->(m) RETURN m.SNP
m.SNP
R-Z338
R-Z8
R-Z7
R-Z2
R-Z345
R-Z27
R-Z30
R-Z9
R-L48
R-Z301
R-Z381
R-U106
R-L151
R-L51
R-L23
R-M269
R-P297
R-L389
R-L754
R-M343
和
MATCH p=(n:SNPNode{SNP:'R-Z25289'})-[r:SNPParent*..66]->(m) RETURN m.SNP
m.SNP
R-S16701
R-S1774
R-Z341
**R-Z11**
R-Z338
R-Z8
R-Z7
R-Z2
R-Z345
R-Z27
R-Z30
R-Z9
R-L48
R-Z301
R-Z381
R-U106
R-L151
R-L51
R-L23
R-M269
R-P297
R-L389
R-L754
R-M343
看來問題在於R-Z11在第二個查詢的路徑中,它本身就是祖先。換句話說,LCA有時處於最短路徑的末端。有沒有辦法解決這個問題,以便R-Z11在最短路徑中返回結果?
您可能要仔細檢查有問題的節點。在沒有得到結果的查詢中,使用的SNP是'R-Z11'和'R-S25289'。但之後用於尋求祖先的查詢是針對'R-Z11'和'R-Z25289'的。您將S更改爲Z. – InverseFalcon