0

子の遺伝子型を考慮して、親が正しい親であるかどうかを確認しようとした以前の質問に端を発しています (指定された変数の「文字列」式が他のいくつかの変数に含まれているかどうかの確認を参照してください) 。

今、私は子供の遺伝子型が劣性遺伝子型 (この遺伝子に対して同じ劣性値 [対立遺伝子] を 2 つ持つ) かどうかを確認しようとしています。この場合、子供は常に病気に冒されていますが、両親はそうではありません (子供は発端者です)。私は両親と子供がホモ接合体であるかどうかを理解しようとしました.そして、子供が親の遺伝子型と一致するかどうかはちょっとわかりました....しかし、これらの2つの情報から、子供がホモ接合型劣性...

これが私がこれまでに持っているものです(上記の同様の回答に従って):

homo <- read.table("/.../Family1a/Family1a_vcf.txt", sep="\t", header=T)

d <- data.frame(list(mom = homo[c(1)], 
                 dad = homo[c(2)], 
                 child = homo[c(3)]
                ), stringsAsFactors = FALSE)


check_homo <- function(x) {
    #homo
    m1 <- sapply(strsplit(as.character(d[,2]),"/"),function(x) x[1])
    m2 <- sapply(strsplit(as.character(d[,2]),"/"),function(x) x[2])
    d1 <- sapply(strsplit(as.character(d[,1]),"/"),function(x) x[1])
    d2 <- sapply(strsplit(as.character(d[,1]),"/"),function(x) x[2])
    c1 <- sapply(strsplit(as.character(d[,3]),"/"),function(x) x[1])
    c2 <- sapply(strsplit(as.character(d[,3]),"/"),function(x) x[2])

    mom_homo <- m1 == m2
    dad_homo <- d1 == d2
    child_homo <- c1 == c2

    homo_matrix_d <- matrix(c(dad_homo,child_homo), ncol=2, byrow=TRUE)
    homo_matrix_m <- matrix(c(mom_homo,child_homo), ncol=2, byrow=TRUE)

    homo_match_dc <- rowSums(homo_matrix_d)
    homo_match_mc <- rowSums(homo_matrix_m)

    #which ones equal parents
    fam <- strsplit(as.character(d[c(1, 2, 3)]), "/")
    names(fam) <- c("mom", "dad", "child")   
    mom_query <- fam[["child"]] == fam[["mom"]]
    dad_query <- fam[["child"]] == fam[["dad"]]
    fam_matrix <- matrix(c(mom=mom_query, dad=dad_query), nrow=2)           
    child_match_parents <- rowSums(fam_matrix)

#if child doesn't match parents and child_homo = recessive
#if child does equal parents,if homo_parent and homo_child then child = dominant

    child_rec <- ifelse((child_match_parents < 1 & child_homo == "TRUE"), "RECESSIVE", "OTHER")
    child_dom <- ifelse((child_match_parents != 0  & child_homo == "TRUE") & (mom_homo == "TRUE" | dad_homo == "TRUE"), "DOMINANT", "OTHER")

}

child_recessive_tmp <- data.frame(apply(x, 1, check_homo))

機能していないのは、ループの最後の 2 行です。このすべてが間違っている可能性があるので、イライラした反応は気にしません。全体として、子供の遺伝子型がホモ接合性劣性であるかどうかを示す 1 つの変数が必要です。

編集:

データの例: 行ごとに 1 つの SNP があります。

    Mom  Dad  Child
rs1 A/A  G/G  A/G
rs2 T/C  T/C  T/T
rs3 A/A  C/A  A/A
.
.
.
rs100 G/C A/G  C/A
4

1 に答える 1