G::SystemsBiology Interaction
Included librariesPackage variablesGeneral documentationMethods
Package variables
Privates (from "my" definitions)
%COG_fcode = ( J=>"Translation, ribosomal structure and biogenesis", K=>"Transcription", L=>"DNA replication, recombination and repair", D=>"Cell division and chromosome partitioning", O=>"Posttranslational modification, protein turnover, chaperones", M=>"Cell envelope biogenesis, outer membrane", N=>"Cell motility and secretion", P=>"Inorganic ion transport and metabolism", T=>"Signal transduction mechanisms", C=>"Energy production and conservation", G=>"Carbohydrate transport and metabolism", E=>"Amino acid transport and metabolism", F=>"Nucleotide transport and metabolism", H=>"Coenzyme metabolism", I=>"Lipid metabolism", Q=>"Secondary metabolites biosynthesis, transport and catabolism", R=>"General function prediction only", S=>"Function unknown", '-'=>"Non COG" )
Included modules
G::Messenger
G::Tools::GPAC
SelfLoader
SubOpt
Inherit
Exporter
Synopsis
No synopsis!
Description
No description!
Methods
substance_layout2
No description
Code
Methods description
None available.
Methods code
substance_layout2descriptionprevnextTop
sub substance_layout2 {
    &opt_default(output=>"show",filename=>"layout2.html", ptt=>"");

    my @args = opt_get(@_);
    my $gb = shift @args;
    my $filename = shift @args;
    my $output = opt_val("output");
    my $outfile = opt_val("filename");
    my $ptt = opt_val("ptt");

    set_gpac($gb, -ptt=>$ptt);

    my %gene2id;
    foreach my $cds ($gb->cds()){
	$gene2id{$gb->{$cds}->{gene}} = $cds;
    }
    
    mkdir("graph", 0777);
    open(FILE, '>graph/' . $outfile);
    print FILE qq(
		  <html>
		  <head>
		  <title>GENESYS: Substance Layout</title>
		  </head>
		  <body>
		  <applet code="GraphInteraction.class" width=800 height=600>
		  ); #"
print FILE '<param name=functionkey value="'; my $printcode = ''; foreach my $code (keys %COG_fcode){ $printcode .= sprintf("%s\#%s,", $code, $COG_fcode{$code}); } print FILE $printcode . '">' . "\n"; #"
my @contents; my %RuleHash; my $word; my $number=1; my ($s, $p, $e) = (1,1,1); my %Interaction; my %sum; open(ERI, $filename)|| die("ERROR: file does not exist\n"); while(<ERI>){ my @substrate=(); my @product=(); my @enzyme=(); tr/\n//d; @contents=split /\t/; if($contents[0] eq 'REACTOR'){ $s=$p=$e=1; $RuleHash{$number}{Type}=shift(@contents); $RuleHash{$number}{Class}=shift(@contents); ($RuleHash{$number}{Paeth},$RuleHash{$number}{ID})=split(/:/,shift(@contents)); $RuleHash{$number}{Name}=shift(@contents); $RuleHash{$number}{Enzyme}= (split(/-/,$RuleHash{$number}{ID}))[0]; foreach $word (@contents){ if($word=~/Substrate/){ ($RuleHash{$number}{"S_path$s"},$RuleHash{$number}{"S_ID$s"})=split(/:/,(split(/ /,$word))[1]); $sum{$RuleHash{$number}{"S_ID$s"}}++; push(@substrate,$RuleHash{$number}{"S_ID$s"}); $RuleHash{$number}{"S_Coeff$s"}=(split(/ /,$word))[2]; $s++; }elsif($word=~/Product/){ ($RuleHash{$number}{"P_path$p"},$RuleHash{$number}{"P_ID$p"})=split(/:/,(split(/ /,$word))[1]); $sum{$RuleHash{$number}{"P_ID$p"}}++; push(@product,$RuleHash{$number}{"P_ID$p"}); $RuleHash{$number}{"P_Coeff$p"}=(split(/ /,$word))[2]; $p++; }elsif($word=~/Effector/){ ($RuleHash{$number}{"E_path$e"},$RuleHash{$number}{"E_ID$e"})=split(/:/,(split(/ /,$word))[1]); $RuleHash{$number}{"E_Coeff$e"}=(split(/ /,$word))[2]; $e++; }elsif($word=~/Catalyst/){ ($RuleHash{$number}{C_path},$RuleHash{$number}{C_ID})=split(/:/,(split(/ /,$word))[1]); }else{ $RuleHash{$number}{Arg_tag}{(split(/ /,$word))[0]}=(split(/ /,$word))[1]; } } $Interaction{$number}{substrate} =\@ substrate; $Interaction{$number}{product} =\@ product; $Interaction{$number}{enzyme} = $RuleHash{$number}{Enzyme}; $number++; } if($contents[0] eq 'Include'){ $RuleHash{$number}{Type}=shift(@contents); $RuleHash{$number}{Class}=shift(@contents); } } close(ERI); my $printinter = ''; print FILE qq(<param name=interaction value="); for(my $num=0; $num<$number-1; $num++){ for(my $sub=0; $sub<=$#{$Interaction{$num}{substrate}}; $sub++){ my $substrate = ${$Interaction{$num}{substrate}}[$sub]; for(my $pro=0; $pro<=$#{$Interaction{$num}{product}}; $pro++){ my $product = ${$Interaction{$num}{product}}[$pro]; $printinter .= "$substrate-$product,"; } } } substr($printinter, -1, 1) = ''; print FILE $printinter . '">' , "\n"; my $printinteraction = ''; my %substance_list; print FILE qq(<param name=functionlist value="); for(my $num=0; $num<$number-1; $num++){ for(my $sub=0; $sub<=$#{$Interaction{$num}{substrate}}; $sub++){ my $substrate = ${$Interaction{$num}{substrate}}[$sub]; if ($substance_list{$substrate} < 1){ $printinteraction .= sprintf("%s\#%s,", $substrate, $gb->{$gene2id{$Interaction{$num}{enzyme}}}->{code}); } $substance_list{$substrate}++; for(my $pro=0; $pro<=$#{$Interaction{$num}{product}}; $pro++){ my $product = ${$Interaction{$num}{product}}[$pro]; if ($substance_list{$product} < 1){ $printinteraction .= sprintf("%s\#%s,", $product, $gb->{$gene2id{$Interaction{$num}{enzyme}}}->{code}); } $substance_list{$product} ++; } } } substr($printinteraction, -1, 1) = ''; print FILE $printinteraction . '">' , "\n"; print FILE qq( </applet> </body> </html> ); return 1 unless ($output eq 'show'); chdir("graph"); system("wget http://www.charite.de/bioinformatics/interaction/Funk.class") unless(-M "Funk.class"); system("wget http://www.charite.de/bioinformatics/interaction/GraphInteraction.class") unless(-M "GraphInteraction.class"); system("wget http://www.charite.de/bioinformatics/interaction/GraphPanel.class") unless(-M "GraphPanel.class"); system("wget http://www.charite.de/bioinformatics/interaction/Member.class") unless(-M "Member.class"); system("wget http://www.charite.de/bioinformatics/interaction/Interaction.class") unless(-M "Interaction.class"); system("wget http://www.charite.de/bioinformatics/interaction/Running.class") unless(-M "Running.class"); system("appletviewer out.html &"); chdir("../"); return 1;
}
General documentation
No general documentation available.