May 15, 2008

INSTALl-postgresql in linux

This is a quick guide to installing PostgreSQL on a Linux based system. We need to get this up and running before we can write PHP scripts to talk to the database. We need to install PostgreSQL before we can install PHP (since we need the PostgreSQL header files).

This is a little more complicated than installing Apache.

The best bet is to install from packages since this will make things easier, both now and for upgrades.

If you decide to install from source code, you'll need to create a user and compile the source.

Create a PostgreSQL user (you'll need root access). This is who owns the system. I use the "postgres" user and group, you can use something different but it's best to keep it related to the package.

See your system documentation on how to do this (hint - man useradd). Give the user a home directory of /usr/local/pgsql as this is where PostgreSQL defaults to when it installs.

Once all that is done, untar the source:

$ tar -zxf postgresql-.tar.gz (if you got the gzipp'ed version);
or
$ tar -xjf postgresql-.tar.bz2

Jump into the directory:

$ cd postgresql-

(replace with the version you downloaded from the website).

Again, configure has a lot of help:

$ ./configure --help

We'll just install into /usr/local/pgsql and leave the rest as-is:

$ ./configure --prefix=/usr/local/pgsql

Next we have to make it (this will take a while, it takes longer than Apache):

$ make

You will get a line:
All of PostgreSQL successfully made. Ready to install.

when everything is finished.

You'll need to log in as root to do the rest:

$ su -

Go back to the postgresql directory and do:

# make install

PostgreSQL doesn't allow root to start up the server for security reasons, so next you'll have to change the owner of the files:

# chown -R postgres:postgres /usr/local/pgsql

Change to the postgres user:

# su - postgres

Then, change to /usr/local/pgsql:

$ cd /usr/local/pgsql

We need to initialize a database cluster:

$ bin/initdb -D ./data

This will create a /usr/local/pgsql/data directory and initialize it ready for startup and use.

As usual, you can view options by using the --help switch:

$ bin/initdb --help

Then you can start:

$ bin/pg_ctl -D ./data -l data/logfile start

Now that postgresql is started, we need to create a database and another user before we go any further.

You should use a separate database for each of our projects, it's not essential though - it just makes things a little cleaner and easier to understand.

You should also use separate users for each database. This keeps everything separate and 'project a' won't be able to modify any of 'project b's data.

To create a new user in postgresql, it's pretty simple:

$ /usr/local/pgsql/bin/createuser

and follow the prompts - pretty simple :)

The new user should not be able to create new databases or create new users.


To create a database, it's a little different.

$ /usr/local/pgsql/bin/createdb --owner=username databasename

We have to set the owner of the database when we create it, otherwise the 'postgres' user owns it and then we have to grant access to allow our new user to access it.


Now that that's all done, log out of the postgres user, so we're back as root. In the postgres directory, the contrib/start-scripts/ directory has a few system start up scripts

Useful installation instruction from http://www.designmagick.com/article/2/Starting-Out/Installing-PostgreSQL
This is a quick guide to installing PostgreSQL on a Linux based system. We need to get this up and running before we can write PHP scripts to talk to the database. We need to install PostgreSQL before we can install PHP (since we need the PostgreSQL header files).

This is a little more complicated than installing Apache.

The best bet is to install from packages since this will make things easier, both now and for upgrades.

If you decide to install from source code, you'll need to create a user and compile the source.

Create a PostgreSQL user (you'll need root access). This is who owns the system. I use the "postgres" user and group, you can use something different but it's best to keep it related to the package.

See your system documentation on how to do this (hint - man useradd). Give the user a home directory of /usr/local/pgsql as this is where PostgreSQL defaults to when it installs.

Once all that is done, untar the source:

$ tar -zxf postgresql-.tar.gz (if you got the gzipp'ed version);
or
$ tar -xjf postgresql-.tar.bz2

Jump into the directory:

$ cd postgresql-

(replace with the version you downloaded from the website).

Again, configure has a lot of help:

$ ./configure --help

We'll just install into /usr/local/pgsql and leave the rest as-is:

$ ./configure --prefix=/usr/local/pgsql

Next we have to make it (this will take a while, it takes longer than Apache):

$ make

You will get a line:
All of PostgreSQL successfully made. Ready to install.

when everything is finished.

You'll need to log in as root to do the rest:

$ su -

Go back to the postgresql directory and do:

# make install

PostgreSQL doesn't allow root to start up the server for security reasons, so next you'll have to change the owner of the files:

# chown -R postgres:postgres /usr/local/pgsql

Change to the postgres user:

# su - postgres

Then, change to /usr/local/pgsql:

$ cd /usr/local/pgsql

We need to initialize a database cluster:

$ bin/initdb -D ./data

This will create a /usr/local/pgsql/data directory and initialize it ready for startup and use.

As usual, you can view options by using the --help switch:

$ bin/initdb --help

Then you can start:

$ bin/pg_ctl -D ./data -l data/logfile start

Now that postgresql is started, we need to create a database and another user before we go any further.

You should use a separate database for each of our projects, it's not essential though - it just makes things a little cleaner and easier to understand.

You should also use separate users for each database. This keeps everything separate and 'project a' won't be able to modify any of 'project b's data.

To create a new user in postgresql, it's pretty simple:

$ /usr/local/pgsql/bin/createuser

and follow the prompts - pretty simple :)

The new user should not be able to create new databases or create new users.


To create a database, it's a little different.

$ /usr/local/pgsql/bin/createdb --owner=username databasename

We have to set the owner of the database when we create it, otherwise the 'postgres' user owns it and then we have to grant access to allow our new user to access it.


Now that that's all done, log out of the postgres user, so we're back as root. In the postgres directory, the contrib/start-scripts/ directory has a few system start up scripts

Useful installation instruction from http://www.designmagick.com/article/2/Starting-Out/Installing-PostgreSQL

May 13, 2008

NCBI Resource Locator

What is this thing?

The NCBI Resource Locator provides stable, uniform addressing for NCBI content, making it easy to link to individual records. Some NCBI resources also provide services (like search) through these URLs.
How does it work?

Each URL has the form

http://view.ncbi.nlm.nih.gov///

Where:

* is an NCBI resource (e.g., pubmed, gene, nucleotide, etc.)
* is the action to perform (e.g., search, get, etc.). If is missing, the default verb "get" is used.
* is data used by the action to perform the request

Some examples:

* http://view.ncbi.nlm.nih.gov/pubmed/12345

Show the PubMed record with pmid 12345
* http://view.ncbi.nlm.nih.gov/pubmed/search/cancer

Search PubMed for "cancer"
* http://view.ncbi.nlm.nih.gov/gene/search/human+p53

Search PubMed for "human p53"
* http://view.ncbi.nlm.nih.gov/homologene/search/dystrophin

Search Homologene for "dystrophin"


Reference http://view.ncbi.nlm.nih.gov/

unzip file(bz2,tar) files

use the command "bunzip2 filename.bz2" for unzip the bz2 files
use the command "tar -cvf filename.tar" for unzip the tar files
use the command "tar -xzvf filename.tar.gz for unzip the tar.gz files

How to transfer files using SCP in linux

Use the command to transfer file using SCP in linux

scp filename username@hostname(or ip address):/home/user/ (path)

for eg, in my homology machine i use

scp filename suresh@homology:/home/suresh/

May 12, 2008

What is the difference between hypothetical protein and putative protein

A hypothetical protein is the one whose function is unknown while a putative is the one in which the function is known but that is determined computationally, it has not been proved experimentally

Welcome

Opportunity is missed by most people because it is dressed in overalls and looks like work - Edison