免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3562 | 回复: 24
打印 上一主题 下一主题

[文本处理] 旧问题新问? [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-09 10:27 |只看该作者 |倒序浏览
一个旧问题:
原文:
=======================================================================
好吧。。。我不知道怎么描述问题,大神们见谅。。。

两个文本:
文本1:

  1. CYP21A2 =>      *29
  2. [chr6::32008338::32008339::C/T] =>      *99
  3. [chr6::32008695::32008696::G/A]&&[chr6::32006860::32006861::C/G]        =>      *56 
  4. [chr6::32008338::32008339::C/T]&&[chr6::32006860::32006861::C/G]&&[chr6::320088::320089::C/T]        =>      *86
  5. [chr6::32008338::32008339::C/T]&&[chr6::320088::320089::C/T]  =>  *96
  6. [chr6::320088::320089::C/T]     =>      *66
  7.  
复制代码
文本2:

  1. CYP21A2   NM_000016       c.134C>T        chr6    32008338        32008339        1p31.1  1       .      C       snv    C/T   .   HET  
  2. CYP21A2  NM_000016       c.145C>T        chr6    32008695        32008696        1p31.1  1       .       C       snv     G/A   .   HOM
  3. CYP21A2  NM_000016       c.145C>G        chr1    32006860        32006861        1p31.1  1       .       C       snv     C/G   .   HET
  4. CYP21A2   NM_000016       c.14C>T        chr6    320088        320089        1p31.1  1       .      C       snv    C/T   .   HOM
  5. CYP21A2   NM_000016       c.1234C>T        chr16    32011088        32011089        1p31.1  1       .      C       snv    C/T   .   HET
复制代码
怎么做能够当
=====================================================================
引自怎么严格限定条件后得到对应的结果?
http://bbs.chinaunix.net/forum.p ... mp;fromuid=29097174
感谢@yestreenstars@rulebook两位大神的回答,可是我回过头研究的时候,想问问
--假如我现在需要引入一个新的变量:文本二的最后一列(由两种情况HET、HOM)作为条件需求匹配,应该怎么做呢?
新条件如下:
==========================================================

  1.   if[文本2中4、5、6、12列满足于文本1 => 前面的所有条件(条件a)]&&[文本2的最后一列是HOM];then
  2.          输出文本1 => 后面的字符串;
  3.   elsif[文本2中1列满足于文本1 => 前面的条件(条件b)]&&[文本2的最后一列是HOM];then
  4.           输出文本1 => 后面的字符串;
  5.   elsif[文本2的最后一列是HET];then
  6.         if[该行满足条件a]&&[条件a只有一个];then
  7.            输出一个条件b的文本1 => 后面的字符串外加一个满足条件a的文本1 => 后面的字符串  #满足条件a必然满足条件b
  8.         elsif[该行满足条件a]&&[条件a不止一个];then
  9.             输出同时满足多个条件a时的文本1 => 后面的字符串
  10.          fi
  11.    elsif[该行满足条件a]&&[条件a不止一个]&&[文本2的最后一列既有HOM也有HET];then
  12.          首先输出最后一列为HOM的文本1 => 后面的字符串 ,HET的再组合考虑
  13.    else
  14.          输出".";
  15.     fi

复制代码
举例:
----------------------------------------------------------------------------------------------------------------------
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T,第一列是CYP21A2,且最后一列是HET时,输出*29*99
当文本2中有一行第4列是chr6、第5列是32008695、第六列是32008696、第12列是G/A的同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G,两行最后一列都是HET时,输出*56
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T的同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G的同时还存在一行第4列是chr6、第5列是320088、第六列是320089、第12列是C/T,最后一列都是HET时,输出*86
--------------------------------------------------------------------------------------------------------------------
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T,且最后一列是HOM时,输出*99
当文本2中有一行第4列是chr6、第5列是32008695、第六列是32008696、第12列是G/A的(第一行)同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G(第二行),即使两行最后一列都是HOM。输出*56,因为在文本1中没有第一行、第二行能单独决定的字符串;
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T(第一行)的同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G(第二行)的同时还存在一行第4列是chr6、第5列是320088、第六列是320089、第12列(第三行)是C/T,最后一列都是HOM时,第一行输出*99、第二行输出"."(因为切掉第一第三行的记录,单独的第二行或者第二第三行组合不决定字符串)、第三行输出 *66
----------------------------------------------------------------------------------------------------------------------
当文本2中有一行第4列是chr6、第5列是32008695、第六列是32008696、第12列是G/A的(第一行)同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G(第二行),第一行是HOM、第二行是HET。输出*56,因为在文本1中没有第一行、第二行能单独决定的字符串;
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T(第一行)的同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G(第二行)的同时还存在一行第4列是chr6、第5列是320088、第六列是320089、第12列(第三行)是C/T,第一行是HET、第二行是HOM、第三行是HET时,第一行输出*96、第二行输出"."(因为切掉第一第三行的记录,单独的第二行或者第二第三行组合不决定字符串)、第三行输出 *96
-----------------------------------------------------------------------------------------------------------------------
当文本2中有一行第4列是chr6、第5列是32008338、第六列是32008339、第12列是C/T(第一行)的同时还存在一行第4列是chr6、第5列是32006860、第六列是32006861、第12列是C/G(第二行)的同时还存在一行第4列是chr6、第5列是320088、第六列是320089、第12列(第三行)是C/T,第一行是HOM、第二行是HOM、第三行是HET时,第一行输出*99、第二行输出"."(因为切掉第一第三行的记录,单独的第二行或者第二第三行组合不决定字符串)、第三行输出 *29*26
&&表示前后都要满足,文本1中可能同时存在多个&&

也就是最后得到:

  1. CYP21A2   NM_000016       c.134C>T        chr6    32008338        32008339        1p31.1  1       .      C       snv    C/T   .   HET  *29*99
  2. CYP21A2  NM_000016       c.145C>T        chr6    32008695        32008696        1p31.1  1       .       C       snv     G/A   .   HET   *56 
  3. CYP21A2  NM_000016       c.145C>G        chr1    32006860        32006861        1p31.1  1       .       C       snv     C/G   .   HET     *56 
  4. CYP21A2   NM_000016       c.14C>T        chr6    320088        320089        1p31.1  1       .      C       snv    C/T   .   HOM   *66
  5. CYP21A2   NM_000016       c.1234C>T        chr16    32011088        32011089        1p31.1  1       .      C       snv    C/T   .   HET   .
复制代码
sorry~跪求大神们原谅我的描述能力~

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-07-09 10:35 |只看该作者
个人理解能力有限,呼唤熟悉问题的两位大神
@yestreenstars@rulebook。

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
3 [报告]
发表于 2014-07-09 10:37 |只看该作者
回复 2# Herowinter
Herowinter大神啊~为什么我看了很多遍论坛上面说的提问艺术我还不会提问呢?

   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-07-09 10:39 |只看该作者
本帖最后由 Herowinter 于 2014-07-09 10:39 编辑

回复 3# huang6894

和你的问题描述无关,是我想偷懒,问题描述实在太多。
更何况以前有人帮你写过代码了,让他们改一下更快吧。
   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [报告]
发表于 2014-07-09 10:43 |只看该作者
回复 4# Herowinter


    谢谢大神给我留了面子。。。哈哈,我也觉得描述好多。。。。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
6 [报告]
发表于 2014-07-09 12:24 |只看该作者
信息量太大~

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
7 [报告]
发表于 2014-07-09 13:38 |只看该作者
本帖最后由 Herowinter 于 2014-07-09 13:39 编辑

回复 1# huang6894

看了好久,文本1 文本2得到这个结果的算法没看懂
  1. CYP21A2   NM_000016       c.134C>T        chr6    32008338        32008339        1p31.1  1       .      C       snv    C/T   .   HET  *29*99
  2. CYP21A2  NM_000016       c.145C>T        chr6    32008695        32008696        1p31.1  1       .       C       snv     G/A   .   HET   *56
  3. CYP21A2  NM_000016       c.145C>G        chr1    32006860        32006861        1p31.1  1       .       C       snv     C/G   .   HET     *56
  4. CYP21A2   NM_000016       c.14C>T        chr6    320088        320089        1p31.1  1       .      C       snv    C/T   .   HOM   *66
  5. CYP21A2   NM_000016       c.1234C>T        chr16    32011088        32011089        1p31.1  1       .      C       snv    C/T   .   HET   
复制代码
从这结果看,好象是文本2的每一行加点查文本1得到的字符串,但你的算法描述里还要结合其他行,
2-3行综合考虑,实在看不懂。
   

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
8 [报告]
发表于 2014-07-09 13:40 |只看该作者

这描述,看的蛋疼

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
9 [报告]
发表于 2014-07-09 13:41 |只看该作者
进来恶补一下.....

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
10 [报告]
发表于 2014-07-09 15:44 |只看该作者
回复 6# yestreenstars


    是呀,,哈哈~大大如果有时间帮忙看看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP