У меня есть файл с двумя столбцами. Каждая строка содержит одну запись или несколько записей. Я хочу пересекать записи каждой строки одного столбца с другим, имея в виду, что для строк с несколькими записями нам нужен только удар. Под множественным столбцом я подразумеваю в следующем примере второй элемент списка A, который состоит из двух записей (gene2 и gene3)
, например:
A=[gene1, [gene2, gene3], gene 4]
B=[gene1, gene2]
, пересекающийся набор будет:
C=[gene1, gene2]
gene2 выбран, хотя в списке A входит в группу, которая также включает в себя gene3. Поэтому, когда мы нажимаем на множественную запись, такую как список [gene2, gene3] в списке A, мы собираемся оценить любой его элемент с элементами других списков (gene2 ИЛИ ген 3).
Если мычтобы получить совпадение, нужно оценить список элементов из обоих списков, им просто нужно иметь один общий элемент так:
A=[gene1, [gene2, gene3]]
B=[gene1, [gene2, gene4]]
C=[gene1, gene2] #intersecting set
Все это происходит из-за того, что у меня есть два столбца генов, которые яЯ хочу диаграмму Венна, однако в некоторых строках есть несколько записей, и из этих последних мне просто нужен один элемент для сопоставления с остальными.
Наконец, мне также нужны исходные списки обратно (A и B, называемые newA и newBсоответственно) в моем примере со всеми элементами и списком элементов, которые не совпадают ни с чем, например:
A=[gene1, [gene2, gene3]]
B=[gene1, [gene2, gene4],[gene5, gene6], gene7]
C=[gene1, gene2] #intersecting A and B
newA=empty #because gene3 was together with gene 2 that matched
newB=[[gene5, gene6], gene7]
обратите внимание, что gene3 не включается в newA, потому что он был в списке нескольких вариантов выбора сген2, который был выбран ... то же самое для гена4 в newB.