my @genes = qw( Gene1 Gene2 Gene3 Gene4 Gene5 Gene6 );
my @raw_files = (
"Gene1 Gene2 Gene3",
"Gene2 Gene3 Gene4",
"Gene3 Gene4 Gene5",
);
my @gene_in_files = map {
my %content;
@content{ split " ", $_ } = ();
\%content;
} @raw_files;
my @gene_matrix = map {
my $gene = $_;
[ map { ~~exists $_->{$gene} } @gene_in_files ]
} @genes;
print "Gene", $_+1, " @{$gene_matrix[$_]}\n" for 0 .. $#gene_matrix;
####
Gene1 1 0 0
Gene2 1 1 0
Gene3 1 1 1
Gene4 0 1 1
Gene5 0 0 1
Gene6 0 0 0
####
[shift-insert, to paste output from my terminal]
####
my @genes = qw( Gene1 Gene2 Gene3 Gene4 Gene5 Gene6 );
my @raw_files
= ( "Gene1 Gene2 Gene3", "Gene2 Gene3 Gene4", "Gene3 Gene4 Gene5" );
my $gene_num = 1;
print "Gene", $gene_num++, " @{$_}\n" for sub {
my @in_file = map { { map { $_ => 0 } split " ", $_ } } @{+shift};
map {
my $gene = $_;
[ map { ~~exists $_->{$gene} } @in_file ]
} @{+shift};
}->( \@raw_files, \@genes );