An Integral Membrane Protein (IMP) is a protein molecule (or assembly of proteins) that is permanently attached to the biological membrane. Such proteins can be separated from the biological membranes only using detergents, nonpolar solvents, or sometimes denaturing agents.
IMPs comprise a very significant fraction of the proteins encoded in an organism's genome.
Three-dimensional structures of only ~160 different integral membrane proteins are currently determined at atomic resolution by X-ray crystallography or Nuclear magnetic resonance spectroscopy due to the difficulties with extraction and crystallization. In addition, structures of many water-soluble domains of IMPs are available in the Protein Data Bank. Their membrane-anchoring α-helices have been removed to facilitate the extraction and crystallization.
IMPs can be divided into two groups:
The most common type of IMP is the transmembrane protein (TM), which spans the entire biological membrane. Single-pass membrane proteins cross the membrane only once, while multi-pass membrane proteins weave in and out, crossing several times. TM proteins can be categorized as Type I, which are positioned such that their amino-terminus is outside of the membrane, or Type II, which have their carboxy-terminus outside of the membrane.
Integral monotopic proteins, are permanently attached to the membrane from one side.
Three-dimensional structures of the following integral monotopic proteins have been determined:
There are also structures of integral monotopic domains of transmembrane proteins:
Such domains require detergents for extraction or crystallization, even after removal of their transmembrane helices. Therefore, they are often classified as integral monotopic proteins 
IMPs include transporters, channels, receptors, enzymes, structural membrane-anchoring domains, proteins involved in accumulation and transduction of energy, and proteins responsible for cell adhesion. Classification of transporters can be found in TCDB database.
Examples of integral membrane proteins: