Мои диаграммы Венна не пересекаются - чего не хватает в моем коде - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть два списка генов, и я хочу представить перекрытие между списками на диаграмме Венна. Кто-нибудь может подсказать, что мне не хватает в коде ниже? Я использую пакет VennDiagram, и в результате я получаю два непересекающихся круга. Я также использовал Венни https://bioinfogp.cnb.csic.es/tools/venny/index2.0.2.html, чтобы нарисовать Венну, и подтвердил, что есть совпадение.

library(VennDiagram)

#select the data
dataset1 <- data.frame(as.character(v7$HGNC_Symbol)) #567 genes
dataset2 <- data.frame(as.character(test$toupper.v13.HGNC_Symbol.)) #476 genes

#rename the columns so I know the source
names(dataset1)[1] <- "Progenesis"
names(dataset2)[1] <- "BiomaRt"

#sort the dataframes alphabetically 
dataset1 <- dataset1 %>% arrange(Progenesis)
dataset2 <- dataset2 %>% arrange(BiomaRt)

#create a list of numbers and join it to dataframe1
mylist <- c(1:592)
dataset1 <- data.frame(mylist, dataset1)

#create a list of numbers and join it to dataframe2
mylist <- c(1:494)
dataset2 <- data.frame(mylist, dataset2)

#join the two dataframes
v <- plyr::join(dataset1, dataset2, type='full')

#draw the Venn Diagram

Dataset1 <- as.vector(v$Progenesis)
Dataset2 <- as.vector(v$BiomaRt)
Dataset2 <- na.omit(Dataset2)

    #first 20 rows of each dataset 
    dput(Dataset1)
        c("AACS ", "AARS ", "ABCF1 ", "ACAD11 ", "ACIN1 ", "ACO1 ", "ACOX3 ", 
        "ACP1 ", "ACSL3 ", "ACY1A ", "ACYP1 ", "ADA ", "ADI1 ", "ADK ", 
        "ADSL ", "ADSS ", "AGPAT3 ", "AHSA2 ", "AK4 ", "AKAP1 ")
        dput(Dataset2)
        structure(c("AACS", "AARS", "AARS", "ABCF1", "ACAD11", "ACIN1", 
        "ACO1", "ACOX3", "ACSL3", "ACYP1", "ADA", "ADI1", "ADK", "ADSL", 
        "AGPAT3", "AHSA2", "AKAP1", "AKAP12", "AKR1A1", "AKR1A1"),
        na.action = structure(495:592, class = "omit"))

venn.diagram(
  x = list(Dataset1, Dataset2),
  category.names = c("Set1" , "Set2"),
  filename = 'venn_diagram.png',
  output=TRUE
  )

Все предложения приветствуются.

Спасибо

Результат моего кода такой:

Что я хочу здесь

1 Ответ

0 голосов
/ 02 мая 2020

У меня есть несколько замечаний к вашим данным:

dput(Dataset1)
        c("AACS ", "AARS ", "ABCF1 ", "ACAD11 ", "ACIN1 ", "ACO1 ", "ACOX3 ", 
        "ACP1 ", "ACSL3 ", "ACY1A ", "ACYP1 ", "ADA ", "ADI1 ", "ADK ", 
        "ADSL ", "ADSS ", "AGPAT3 ", "AHSA2 ", "AK4 ", "AKAP1 ")
dput(Dataset2)
        structure(c("AACS", "AARS", "AARS", "ABCF1", "ACAD11", "ACIN1", 
        "ACO1", "ACOX3", "ACSL3", "ACYP1", "ADA", "ADI1", "ADK", "ADSL", 
        "AGPAT3", "AHSA2", "AKAP1", "AKAP12", "AKR1A1", "AKR1A1"),
        na.action = structure(495:592, class = "omit"))

Ваш Dataset1 содержит строки, заканчивающиеся пробелом . Они не равны значениям в Dataset2, например, "AACS " не совпадает с "AACS". Попробуйте преобразовать ваш набор данных в

Dataset1 <- c("AACS","AARS","ABCF1","ACAD11","ACIN1","ACO1","ACOX3", 
              "ACP1","ACSL3","ACY1A","ACYP1","ADA","ADI1","ADK", 
              "ADSL","ADSS","AGPAT3","AHSA2","AK4","AKAP1")

В этом случае ваш вывод должен выглядеть следующим образом: venn diagramm Ваш выходной тип файла равен .png, для этого вам следует использовать параметр imagetype='png' .

...