如何搜索一个数值范围并提取其行首的字符?

如何搜索一个数值范围并提取其行首的字符?

如何搜索一个数值范围并提取其行首的字符?
作者提供的相关的附件(大小:1 K)

各位大侠:

本人是位初学者,正在为下面的任务而头痛,现请牛人示教!这虽然是个生物领域的问题,但实质是搜索一个数值范围并提取其行首的字符。

任务是这样的:从待分析的文件text1.txt中找出0.450至0.500范围内的值,并将该值所在行的rs号码拷贝出来,自动存储到名为text2.txt的文件中。

例如:在附件例子Text1.txt中搜索到0.456后,将该值所在行的rs6603234这个字符串取出来并自动存储到程序自己创建的text2.txt中。如果text1.txt还包含有更多这样的条目,如0.487,也能一并存在text2.txt中。这样一打开text2.txt就能知道有多少符合条件的rs号。

(如用Word打开Text1.txt文件,将会发现rs6603234与0.456实际上在一行)。

我想,应该就rs字符串设一个变量,有if循环结构,但是具体程序该如何写,请牛人帮我(示范一下)!本人初学,总觉力不从心,也可能是不愿动脑筋,所以一直没能写出完整的程序。

附件Text1.txt的内容:
rs6603204 chrX 268440 + ncbi_b35 illumina urn:LSID:illumina.hapmap.org:Protocol:Golden_Gate_1.1.0:1 urn:LSID:illumina.hapmap.org:Assay:311013:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:1 QC+ A 0.156 14 G 0.844 76 90
rs2738384 chrX 268595 + ncbi_b35 perlegen urn:lsid:perlegen.hapmap.org:Protocol:Genotyping_1.0.0:2 urn:lsid:perlegen.hapmap.org:Assay:25767.4492292:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:2 QC+ G 0 0 A 1 86 86
rs2738364 chrX 272139 + ncbi_b35 affymetrix urn:LSID:affymetrix.hapmap.org:Protocol:genotype_protocol_1:2 urn:LSID:affymetrix.hapmap.org:Assay:SNP_A-4207891:2 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:2 QC+ G 0.156 14 C 0.844 76 90
rs6603234 chrX 272533 + ncbi_b35 illumina urn:LSID:illumina.hapmap.org:Protocol:Golden_Gate_1.1.0:1 urn:LSID:illumina.hapmap.org:Assay:311015:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:1 QC+ A 0.544 49 G 0.456 41 90
rs2738361 chrX 272743 + ncbi_b35 perlegen urn:lsid:perlegen.hapmap.org:Protocol:Genotyping_1.0.0:2 urn:lsid:perlegen.hapmap.org:Assay:25767.4202104:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:2 QC+ G 1 86 A 0 0 86
rs2738360 chrX 272966 + ncbi_b35 illumina urn:LSID:illumina.hapmap.org:Protocol:Golden_Gate_1.1.0:1 urn:LSID:illumina.hapmap.org:Assay:959248:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:1 QC+ G 1 90 A 0 0 90
rs2738349 chrX 278565 + ncbi_b35 perlegen urn:lsid:perlegen.hapmap.org:Protocol:Genotyping_1.0.0:2 urn:lsid:perlegen.hapmap.org:Assay:25767.4629969:1 urn:LSID:dcc.hapmap.org:Panel:Han_Chinese:2 QC+ T 1 90 C 0 0 90




   

m8 格式的 blasat 结果?试试 Bio::SearchIO.

或者

line =~ /^(rs\d+)\s.+?\s([\d\.]+)\s\d+\s\d+$/


$1 就是 rs 编号
$2 是要检测的值
多谢!
是在做SNP研究的,这是Hapmap上下载的genotype的数据吧,这个数据量比较大。

为解决上述问题,我辛苦学了perl,可是到现在只能看懂别人的代码,就是自己写不出来!搞得我自卑的很!
慢慢来,都是从 hello, wo.
慢慢来,都是从 hello, world 开始的。

数据量很大的话,还是用数据库比较容易管理一些。