24小时热门版块排行榜    

查看: 1122  |  回复: 12

philip890220

铜虫 (初入文坛)

[求助] perl程序求助,请高手不吝赐教~~

要处理的文件格式是这样的(具体文件见附件):

DR1573        DR1284
DR0420        DR2025
DRA0288        DR1858
DR2541        DR2083
DRA0118        DR0920
DR1667        DR1326
DR2308        DR1058
DR2363        DRA0071


每一行两个基因,同一行中,左边的基因称为右边的父节点,右边的基因是左边的子节点,就拿第一行左边这个基因DR1573来说,DR1284就是他的子节点,DR1573是DR1284的父节点。
我现在想做的事情是这样的:

还拿DR1573这个基因举例,我需要找出来他的所有的父节点A(为了便于说明就姑且称之为A,当然A可能不止一个,下同)与子节点B,A也有自己的父子节点C和D,B也有自己的父子节点E、F,分别把CDEF求出来,CDEF可能也有自己的父子节点,再求出来,总之只要是相关的全部求出来,有点类似于株连九族的赶脚,呵呵~~,就是这么一个程序把我难住了,求高手赐教~~~~
要是哪里没说清楚亲们就直接问就好了~~,先谢谢了~~~

PS:附件是需要处理的文件~~~[ Last edited by philip890220 on 2013-5-14 at 00:56 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : pair_gene_0.90.txt
  • 2013-05-14 00:54:26, 32.47 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
philip890220: 金币+1, 谢谢回复,但是我没学过pytho~~~~呵呵~~ 2013-05-14 08:39:16
不懂perl,但是用python的dict可以这么解决
弄一个dict,数据是 key-value pair
key是字符串,基因名字
value是一个list,子基因列表
这样只要有一个基因,可以直接得到子基因,然后一路递归下去,直到没有子基因为止.
如果想要双向的(从子基因到父基因),有2个办法:
1.再多做一个dict,键值是基因名字,value是父基因列表
2.还是原来那个dict,key不变,value变成2个元素的list,list[0]是父基因列表,list[1]是子基因列表
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-05-14 03:56:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kjeldahl

禁虫 (正式写手)


jjdg: 金币+1, 感谢参与 2013-05-21 11:40:32
本帖内容被屏蔽

3楼2013-05-21 09:54:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

philip890220

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by kjeldahl at 2013-05-21 09:54:07
你这父子是网还是链,

DR1573        DR1284
DR1573是DR1283的父节点,DR1284是DR1573的子节点!下同!
4楼2013-05-21 19:25:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kjeldahl

禁虫 (正式写手)

本帖内容被屏蔽

5楼2013-05-21 22:57:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

h2plus0

银虫 (初入文坛)

【答案】应助回帖

请问楼主,该问题是不是就是: 一个节点有多个父节点, 知道一个节点,把这棵树里的所有节点都求出来?
俺对java还比较熟悉,perl处理起来可能比较麻烦阿
拿破轮曾经说过:随意的让一个金币从眼前溜走就是对GM的犯罪!
6楼2013-05-22 09:29:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

h2plus0

银虫 (初入文坛)

对于此七星北斗阵,C2 有两个父结点,P1和P2,
P1还有另外一个子结点C1, P2 还有另外一个子节点P3,
知道 C2, 求出: C1, C2,C3, P1, P2, 需要 CC1, CC2 吗?
perl程序求助,请高手不吝赐教~~
a.png

拿破轮曾经说过:随意的让一个金币从眼前溜走就是对GM的犯罪!
7楼2013-05-22 09:59:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

philip890220

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by kjeldahl at 2013-05-21 22:57:31
我的意思 是:你的父节点会不会是其他子节点的父节点,就是一个父节点是不是只有一个子节点,一个子节点只有一个父节点。这样就很简单,如果是网的话就复杂点...

是网,刚才没理解清楚~~  呵呵
8楼2013-05-22 14:22:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

philip890220

铜虫 (初入文坛)

引用回帖:
7楼: Originally posted by h2plus0 at 2013-05-22 09:59:56
对于此七星北斗阵,C2 有两个父结点,P1和P2,
P1还有另外一个子结点C1, P2 还有另外一个子节点P3,
知道 C2, 求出: C1, C2,C3, P1, P2, 需要 CC1, CC2 吗?

a.png
...

需要的~~  呵呵
9楼2013-05-22 14:23:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tanyxxmc

新虫 (初入文坛)

【答案】应助回帖

用perl的图论模块。去CPAN下载个Graph模块,建个有向图(directed)。connected_components这个函数能够自动告诉你哪些节点相连,具体看模块说明吧。
10楼2013-06-07 11:23:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 philip890220 的主题更新
信息提示
请填处理意见