【发布时间】:2012-02-22 16:43:23
【问题描述】:
我正在处理一些基因组数据,我有 2 个文件 ->
文件1
A1 1 10 A1 15 20 A2 2 11 A2 13 16
文件2
>A1 CTATTATTTATCGCACCTACGTTCAATATACAGGCGAACATACCCACTA AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT >A2 GTCTGCACAGCCGCTTTCCACACAGACATAACAAAAAATTTCCACCA AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC CAAACCCCAAAAAAAAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT在文件 1 中,第 2 和第 3 列表示 File2 中的索引。所以我想要这样,如果 file1 的 column1 中的字符与 file2 中的字符后跟符号 (>) 匹配,那么从该 file2 的下一行根据 file1 的 col2 和 col3 中的索引返回子字符串。 (对不起,我知道它很复杂)这是欲望输出 ->
输出
>A1#1:10 塔塔塔塔 >A1#15:20 ACCTA >A2#2:11 TCTGCACAGC >A2#13:16 GCTT我知道如果我只有 1 个字符串,我可以很容易地取出子字符串 ->
@ARGV or die "No input file specified";
open $first, '<',$ARGV[0] or die "Unable to open input file: $!";
$string="GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT";
while (<$first>)
{
@cols = split /\s+/;
$co=$cols[1]-1;
$length=$cols[2]-$co;
$fragment = substr $string, $co, $length;
print ">",$cols[0],"#",$cols[1],":",$cols[2],"\n",$fragment,"\n";
}
但这里我的问题是我应该什么时候输入我的第二个文件,我应该如何将 col1(file1)中的字符与 file2 中的字符(后跟 > 符号)匹配,然后如何获取子字符串?
【问题讨论】:
标签: perl