1

出于 reprex 的目的,我生成了一个名为 random_DNA_tbl 的 tibble,它是 10 个 DNA 序列(100 个碱基)的随机选择。我有一个名为 subseq_tbl 的单独 tibble,其中有 3 个较短的序列与 random_DNA_tbl 中的 3 个序列匹配 100%,但我也想使用从subseq_tbl到random_DNA_tbl中其他序列的序列的模糊匹配。我希望能够使用fuzzyjoin包stringdist_XX_join函数,但是这些似乎不起作用,即使subseq序列实际上是完美匹配并且可以与其他匹配函数一起使用,例如regex_XX_join。

library(tidyverse)
library(fuzzjoin)
random_DNA_tbl <- structure(list(random_name = c("random_seq_1", "random_seq_2", 
                               "random_seq_3", "random_seq_4", "random_seq_5", "random_seq_6", 
                               "random_seq_7", "random_seq_8", "random_seq_9", "random_seq_10"
), random_seq = c("CTCCAGTATTAGTCAATGATAAGGGCGAAGGAGCAGTTCTGATATCTCTGTGAAGTAGCATGCGTCTGACTCTCGGGCGCGGCGGAAGACCGAGGAGCGC", 
                  "TTTTCGTCCGACAGAACATCATATAAACTCGATTTAATCTTCTTTTCAAAATCAATTCGAGGGCACCCGATGCGCGTACTGTCAACCATCAAGATAACGA", 
                  "GAATAGTGTACCAGGTCTTATAGTATGTTCATTCGTACAAAAGGATCCAAAACCAATAGGAACCGCTTCTCCCAACAAGCCTGCTCCTTGCAGAGTGAGT", 
                  "GTGACGCCAGATTCTTGACCTGAACCCAGTTCTACCCCCCCAAAACGATCTGGCTTCCGCTCTCTAATGACAGCTATATTGCTTGATAGAGATCGGTAGG", 
                  "ACCGCCTTCCGTAGGTGAACAACCAGCCTCCTGCGGCCAGGGAAGAAGTCGTGGCCTTGGTTAATTTTGGGTTACTAAACGGACACCCACCGTGGCTCAC", 
                  "ACGACTATCAAGACAACTTGTCTCAGAGCTTCACGCACCAACCCCTAACCCAGCAACTCCAGGGCATTGCCACTCTATGATTCGGCGCGGGTGCGCCCTC", 
                  "GGTAGCACTGAGATCAGCCACTATCAAGGTGCTCCTCACTTCTGGTTCTCAGGTTGCGGGCCGATCATTTTTCTCCGAATTAGCGGTCTTTCACGTCAGA", 
                  "CACTGAATAGTCAGCGTAAAGGCGTCAATCTGTCAGCTCGACGGCAGAAGATGTCCAGCGTGCAGTTTCATAGGCGCCCCGGGGAACCTTCTGTGAGAAT", 
                  "GCCTCTTAATTCTTGAACCGCGAGAGGACACAGTGAGATCTGTTCCATTTCCCCCGTTGCCCGCATGGATCGCCCAGACTCTAGACTTAGTGTGACCTTT", 
                  "CGGTATCGGATTGGTCTACGAATCCGCGACCCTCAAGGTTATTTCTGGATGGAGTTCCGTGCTCGCCTGGATGCACTGCCCAAGCAATTAGGACGAAGTA"
)), .Names = c("random_name", "random_seq"), row.names = c(NA, 
                                                           -10L), class = c("tbl_df", "tbl", "data.frame"))

subseq_tbl <- structure(list(subseq_name = c("subseq1", "subseq2", "subseq3"
), subseq = c("TCAACCATCAAGATAAC", "TAGCGGTCTTTCACGT", "AAGGATCC"
)), .Names = c("subseq_name", "subseq"), row.names = c(NA, -3L
), class = c("tbl_df", "tbl", "data.frame"))

不起作用:

stringdist_left_join(random_DNA_tbl, subseq_tbl, by = c(random_seq = "subseq"))

是否有效:

regex_left_join(random_DNA_tbl, subseq_tbl, by = c(random_seq = "subseq"))

我尝试在 stringdist 中调整 max_dist 参数,但无济于事。任何人都可以阐明这个问题吗?

4

0 回答 0