Yes, this is a tab delimited version of a tree. However, the tree is, at some points, circular. So object A might activate object A.
I am sorry if I did not include enough of the code, I was trying to make it simpler. Yes the line my $object=test_element; should read my $object='test_element';
The errors are as follows:
"my" variable @b masks earlier declaration in same scope at interact_p
+erturb.pl line 56.
"my" variable @b masks earlier declaration in same scope at interact_p
+erturb.pl line 60.
Global symbol "@activated" requires explicit package name at interact_
+perturb.pl line 45.
syntax error at interact_perturb.pl line 51, near "`awk '\$1 ~ /$_[0]/
+' useful_dat.tab |cut -f 2,3|sort|uniq`:"
Global symbol "@a" requires explicit package name at interact_perturb.
+pl line 52.
Missing right curly or square bracket at interact_perturb.pl line 64,
+at end of line
Execution of interact_perturb.pl aborted due to compilation errors.
Perhaps it would be better to include the actual version of the code I am using. I apologize if it is difficult to read. Thanks for your help
#!/usr/bin/perl
use strict;
use warnings;
# prints out inhibited object, directly activated ohjects, directly de
+activated objects, indirectly activated objects, indirectly deacivate
+d objects
print "Modified Object\tActivated Objects\tDeactivated Objects\n";
open(DAT,'<',"./useful_dat.tab")||die "Canot open file\n";
my @file=<DAT>;
close DAT;
shift @file;##remove header
my %true;
foreach my $line(@file){
my @line=split(/\t/,$line);
if($true{$line[0]}){
next;#if element has already come up, skip it
}
else{
$true{$line[0]}=1;#if object has already come up, store true
}
my @activated;
my @inhibited;
print "$line[0]\t";#inhibited object
&inhibited_rec($line[0]);
foreach(@activated){
print "$_,";
}
print "\t";
foreach(@inhibited){
print "$_,";
}
print "\n";
}
sub inhibited_rec{
my @a=`awk '\$1 ~ /$_[0]/' useful_dat.tab |cut -f 2,3|sort|uniq`;
foreach (@a){
my @b=split(/\t/,$_);
if($b[1] eq 'Activation'){
}
else{
push (@activated,$b[0]);
&activated_rec($b[0]);
}
}
}
sub activated_rec{
my @a=`awk '\$1 ~ /$_[0]/' useful_dat.tab |cut -f 2,3|sort|uniq`:
foreach (@a){
my @b=split(/\t/,$_);
if($b[1] eq 'Activation'){
push (@activated,$b[0]);
&activated_rec($b[0]);
}
else{
push (@inhibited,$b[0]);
&inhibited_rec($b[0]);
}
}