【发布时间】:2013-07-01 03:49:24
【问题描述】:
我有差异表达 (DE) 基因的基因序列信息,以及包含在两个数组散列中的转录组序列数据(所有表达的基因)。两个哈希都有一个唯一的基因 ID 作为键(例如“XLOC_000001”)。
我编写了一个程序,它使用来自 DE 基因 HoA 的密钥循环遍历转录组学 HoA,从而只给我 DE 基因的基因序列。
HoA 初始化如下:
my %hash;
push @{ $hash{ $firstkey[$_] } }, [ $p_value[$_], $q_value[$_], $log_fold_change[$_] ] for 0 .. $#firstkey;
my %hash2;
push @{ $hash2{ $secondkey[$_] } }, [ $transcriptID[$_], $sequence[$_] ] for 0 .. $#secondkey;
然后我使用第一个散列中的键从第二个散列中提取值(两个散列的键格式相同)
for my $firstkey (sort keys %hash) {
for my $part (@{ $hash2{$firstkey} }) {
my ($value3, $value4) = @$part;
print $output "$firstkey\n$value4\n";
}
}
这很好用。我现在要做的是在输出中包含来自第一个 HoA 的一些附加信息(P/Q 值和有关表达变化水平的信息)。 我的问题是:如何在输出中包含第一个哈希值?理想情况下,我想打印出来:
%hash2{$firstkey} => $sequence[$_], $p_value[$_], $q_value[$_], $log_fold_change[$_]
我很困惑我是否应该将数组的第二个哈希推到第一个(如果是这样的话?!)还是在最后循环遍历两个哈希?
-------- 更新---------
每个 HoA 的示例:
第一键:
Key 'XLOC_001155' contains the values: [ TCONS_00001774 Scaffold10052 SEchx 0 SEchxdex 3.51656 inf 0.00345 0.803695 ]
Key 'XLOC_001173' contains the values: [ TCONS_00001795 Scaffold10222 SEchx 26.3355 SEchxdex 70.1758 1.41397 0.0199 0.998513 ]
Key 'XLOC_001177' contains the values: [ TCONS_00001799 Scaffold10227 SEchx 26.2873 SEchxdex 0 -inf 0.01285 0.998513 ]
Key 'XLOC_001195' contains the values: [ TCONS_00001826 Scaffold10227 SEchx 0.0580138 SEchxdex 0.688545 3.56908 0.0398 0.998513 ]
Key 'XLOC_000001' contains the values: [ TCONS_00000001 Scaffold10262 SEchx 0 SEchxdex 2.01554 inf 0.00615 0.998513 ]
Key 'XLOC_001290' contains the values: [ TCONS_00001955 Scaffold103603 SEchx 0 SEchxdex 0.732931 inf 0.0139 0.998513 ]
Key 'XLOC_001308' contains the values: [ TCONS_00001973 Scaffold1001 SEchx 0 SEchxdex 1.11927 inf 0.00295 0.763416 ]
Key 'XLOC_000002' contains the values: [ TCONS_00000002 Scaffold10052 SEchx 0.0923385 SEchxdex 23.4041 7.98561 0.02025 0.998513 ]
二键:
Key 'XLOC_000001' contains the values: [ TCONS_00000001 ATTACAATAACTAAGGAGGACATAGCTTAATTTGCACTATTTACTTTAGTGCATCTGTTGTAGTAGGACGTACAAGGACTTTATTGCTTCAGATAAAGACATTTTATTGCTTTCAAGGTATTCCTGAGACAATTGATCGTGCACTGCAAGCTCCACTTCTAAGTATAAACCAGAGGATTGCAAAACTGGAAGCAGTTCTTAGTTTGACTGGACAATTGTATCAAGTAGGAGGAAAAATGTTTGCCACTAATGGGGAGCAAGTTGATTTTGAGGCCTCTAAACTGACCTGTGAAAAGGCTGGTGGACGAATTGCTACTCCAAAGAATGAAGCAGAGAACAATGTTGTGCTAAGTATTTTAAAGAAACACAATAAATATGCATACCTAGGTGTTACAG ]
Key 'XLOC_000002' contains the values: [ TCONS_00000002 GTCACACGGCCAGCATCACGCGTGTCACGCTTTTATCCGGAATGAGACCAACTCCAACTTTTTGTGACTGACTTATTTTTCTTCTAGTATAAAAAAATGTCTCGCAGCCACGAGAGACTTCAACGCCTATAACCACCGGCGTACCTCAAAACAAGCAGATAATACCGCGCTAAGCAGCGTTCGGGTTTATAGGCGGGCATAGCCTCACTTCCGGCAGGCTGCTAGGAAACCAAAGAGACGCGGATTCTGATGTTTTGAGCTGCGAGGGTGAAGCGACTGCAAGGACAACAATGGATTCTGAATACATAAAGCGCTGTTTAGGGAAGTGTTTGTCCGAAGGACTTGCAGAAGTCGCGGAAAAAAGACCGATGGATCCTATTGAGT ]
【问题讨论】:
-
您能否发布
@firstkey、@secondkey、@value1、@value2等的样本?此外,没有“哈希数组”,只有数组的哈希和数组的数组。 -
第一个 HoA 的键包含第二个键的子集。第二个 HoA 包含基因序列。我想包含从第一个 HoA 到序列的所有信息,包含在第二个 HoA 中。
标签: arrays perl hash multidimensional-array push