[Bio] / FigKernelScripts / make_pdb_ontology.pl Repository:
ViewVC logotype

View of /FigKernelScripts/make_pdb_ontology.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (download) (as text) (annotate)
Mon Jun 16 15:42:14 2008 UTC (12 years ago) by mkubal
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, myrast_rel40, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.2: +1 -0 lines
provides usage when no argument given

use FIG;
use lib PPO;
use lib Ontology;
use DBMaster;

my $sqlite_db = shift(@ARGV);
if(!$sqlite_db){print "#usage make_pdb_ontology sqlite_database_file\n"; exit;}
my $dbmaster = DBMaster->new(-database => $sqlite_db, -backend => 'SQLite');

opendir(DIR,"/vol/biodb/pdb/data/structures/all/uncompressed");
my @files = readdir(DIR);
foreach my $file (@files){
    if($file =~/^pdb(.*)\.ent/){
	my $id = $1;
	open(IN,"/vol/drugtargets/PDB/PDB-U/$file");
	my $find_ligand_on_next_line = 0;
	my $find_source_on_next_line = 0;
	my $record_source = 1;
	my ($description,$ligand, $source,$keywords);
	my $source = "NONE";
	while($_ = <IN>){
	    chomp($_);
	    if($_ =~/^HEADER\s+(.*)\d+-\w+-\d+\s+.*\d\w{3}\s+\d+$/){
		$description = $1;
		$description =~s/(\s+)$//;
	    }
	    
	    if($find_ligand_on_next_line){
		if($_ =~/^COMPND\s+(.*)\d\w{3}\s+\d+$/){
		    $ligand = $1;
		    $ligand =~s/(\s+)$//;
		}
		$find_ligand_on_next_line = 0;
	    }
	    
	    if($_ =~/^COMPND\s+.*COMPLEX\sWITH\s(.*)\d\w{3}\s+\d+$/){
		$ligand = $1;
		$ligand =~s/(\s+)$//;
		if(($ligand !~/\w+/) || ($ligand =~/^THE$/)){
		    $find_ligand_on_next_line = 1;
		}
	    }
	    
	    if($record_source){
		if($find_source_on_next_line){
		    if($_ =~/^SOURCE\s+(.*)/){
			my $temp = $1;
			if($source !~/(EXPRESSION_SYSTEM|MOL_ID)/){
			    $source = $temp;
			    $record_source = 0;
			    $find_source_on_next_line = 0;
			}
		    }
		}
	    }
	    
	    if($record_source){
		if($_ =~/^SOURCE\s+(.*)/){
		    $source = $1;
		    if($source =~/(MOL_ID|EXPRESSION_SYSTEM)/){
			$find_source_on_next_line = 1;
			$source = "NONE";
		    }
		    else{$record_source = 0;}
		    
		}
	    }
	    if($_ =~/^KEYWDS\s+(.*)/){
		$keywords = $1;
		my ($dt_objs,$dt_obj);
		$dt_objs =  $dbmaster->pdb->get_objects( { 'id' => $id } );
		if(scalar(@$dt_objs) == 0){ 
		    $dt_obj = $dbmaster->pdb->create( { 'id'    => $id,
						       'description' => $keywords,
						       'ligand' => $ligand,
						       'source' => $source
						       } );
		}
		last;
	    }
	       
	       
	    if($_ =~/^REMARK/){
		my ($dt_objs,$dt_obj);
		$dt_objs =  $dbmaster->pdb->get_objects( { 'id' => $id } );
		if(scalar(@$dt_objs) == 0){ 
		    $dt_obj = $dbmaster->pdb->create( { 'id'    => $id,
						       'description' => $description,
						       'ligand' => $ligand,
						       'source' => $source
						       } );
		}
		last;
	    }
	    
	}
	close(IN);
    }
}

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3