Привет всем, мне нужна помощь:
Я не знаю, знакомы ли вы с филогенетическим деревом, но вот пример:
/-YP_001604167.1
|
|--YP_001604351.1
--|
| /-seq_TAG2_Canis_taurus
| /-|
| | \-seq_TAG2_Canis_austracus
\-|
| /-YP_001798528.1
\-|
| /-YP_009173671.1
\-|
| /-seq_TAG1_Mus_musculus
\-|
| /-seq_TAG1_Mus_griseus
\-|
| /-seq_TAG2_Canis_canis
\-|
| /-seq_TAG2_Canis_familiaris
\-|
\-seq_TAG2_Canis_lupus
И это дерево кодируется специальным форматом, называемым newick:
'(YP_001604167.1,YP_001604351.1,((seq_TAG2_Canis_austracus,seq_TAG2_Canis_taurus),(YP_001798528.1,(YP_009173671.1,(seq_TAG1_Mus_musculus,(seq_TAG1_Mus_griseus,(seq_TAG2_Canis_lupus,(seq_TAG2_Canis_familiaris,seq_TAG2_Canis_canis))))))));'
Дерево заканчивается точкой с запятой. Самый нижний узел в этом дереве - это внутренний узел, а не верхушка. Внутренние узлы представлены парой совпадающих скобок. Между ними находятся представления узлов (seq_names
), которые непосредственно descended
от этого node
, отделены commas
.
сын, если у меня есть что-то вроде:
(A,(B,C));
Тогда это означает, что B
и C
более тесно связаны друг с другом и A
является наиболее отдаленным.
И идея моего вопроса состояла в том, чтобы найти способ, например, использовать python для подсчета количества групп с одинаковыми "TAG_number
", которые находятся ближе друг к другу, чем любые другие узлы TAG_number
или YP_number
.
Например, TAG2
в представленном в 2 groups
, где (seq_TAG2_Canis_taurus, seq_TAG2_Canis_austracus)
вместе, а вторая группа (seq_TAG2_Canis_canis, (seq_TAG2_Canis_familiaris , seq_TAG2_Canis_lupus))
вместе. Для TAG1
, как вы можете видеть, ни один из них не является вложенным вместе, потому что seq_TAG1_Mus_griseus
ближе к группе (seq_TAG2_Canis_canis, (seq_TAG2_Canis_familiaris , seq_TAG2_Canis_lupus))
, чем к другой TAG1 seq_TAG1_Mus_musculus
.
Таким образом, результат должен выглядеть примерно так:
groups for TAG_1 : 0
groups for TAG_2 : 2
Я знаю, что некоторые пакеты в Python или R доступны для того, чтобы определить, находится ли TAG_number в "monophyletic groups
", но нет ничего, чтобы сказать количество групп в дереве, если TAG_number
группы разделены в дереве .
Если у вас есть идея, чтобы сделать это? Большое спасибо.
Другая часть вопроса:
Теперь у меня есть Species phylogeny
, например:
| /-Canis_taurus
| /-|
| | \-Canis_astracus
| /-|
| | | /-Canis_africus
| | \-|
| | | /-Canis_familiaris
\-| \-|
| \-Canis _lupus
|
| /-Canis_canis
\-|
\-Lupus_lupus
и Идея заключается в том, чтобы в каждом monophyletic groups
, собранном в предыдущем процессе, подсчитывать в пределах клад, образованных MRCA клад в филогении вида, число узлов.
Итак, у меня есть 2 groups
:
Первый:
# /-TAG2, seq_TAG2_Canis_austracus
# --|
# \-TAG2, seq_TAG2_Canis_taurus
#
Здесь Canis_austracus
и Canis_taurus
разделяют MRCA
в филогении вида, и этот предок образует клад, состоящий из 2 species
(Canis_austracus and Canis_taurus
)
Итак, виды Nb внутри вида филогенетического дерева = 2
# /-TAG2, seq_TAG2_Canis_lupus
# --|
# | /-TAG2, seq_TAG2_Canis_familiaris
# \-|
# \-TAG2, seq_TAG2_Canis_canis
Здесь 3 таксона имеют общую долю MRCA
, и этот предок образует клад, состоящий из всех видов филогении вида (7)
Итак, виды Nb внутри вида филогенетического дерева = 7