sub addAtom{ my $self = shift; my $pdb = shift; my $atom = shift; my $ch = $atom->chainId(); my $dbh = DBI->connect($dbi,$u,$p,{'RaiseError' => 1}); my $cid = $self->getCID($pdb,$atom->chainId(),$dbh); my ($rid,$aid,$mid,$res,$ato); if(!$cid){ $dbh->do("INSERT INTO chain (pdb,chain) VALUES ('$pdb','$ch')"); $cid = $self->getCID($pdb,$atom->chainId(),$dbh); } if($cid){ $rid = $self->getRID($cid,$atom->resNumber,$atom->resName,$dbh); if(!$rid){ $res=$dbh->quote($atom->resName()); $dbh->do("INSERT INTO residue (cid,rnumber,rname) VALUES ('$cid','".$atom->resNumber."',$res)"); $rid = $self->getRID($cid,$atom->resNumber,$atom->resName,$dbh); } if($rid){ $aid = $self->getAID($rid,$atom->atomName,$dbh); if(!$aid){ $ato=$dbh->quote($atom->atomName()); $dbh->do("INSERT INTO atom (rid,aname) VALUES ('$rid',$ato)"); $aid = $self->getAID($rid,$atom->atomName,$dbh); } if($aid){ $mid = $self->getMID($aid,$atom->model,$dbh); if(!$mid){ $dbh->do("INSERT INTO model (aid,model,x,y,z) VALUES ('$aid','".$atom->model."','".$atom->x."','".$atom->y."','".$atom->z."')"); $mid = $self->getMID($aid,$atom->model,$dbh); } } } } $dbh->disconnect(); }