Function Resource

ProteinResiduePlot3D

Display a protein as a ribbon diagram with specific residues rendered with all atoms

ResourceFunction["ProteinResiduePlot3D"][file,residue]

displays a ribbon diagram of the protein structure represented by file with resdidue included as an all-atom representation.

ResourceFunction["ProteinResiduePlot3D"][pdbid,residue]

downloads a file from the protein data bank and plots it.

Details and Options

file should be either a File object or a string pointing to an existing file.
residue should be a list of {chainId,residueId} giving positions for the given residue in the residue list, such as is returned by Position[Import["ExampleData/1PPT.pdb","Residues"],"Tyr"]
For structures containing a single chain, residue may be an integer or list of integers corresponding to an index into that chain.
pdbid can be either a four-letter string or an ExternalIdentifier object. The compressed MMCIF files are downloaded to the directory given by FileNameJoin[{$UserDocumentsDirectory,"CrystalStructures"}].
ResourceFunction["ProteinResiduePlot3D"] will use a higher quality rendering than the default importer. Use the option PerformanceGoal"Speed" to disable this.
ResourceFunction["ProteinResiduePlot3D"] can take any option for Graphics3D or MoleculePlot3D as well.

Examples

Basic Examples (2) 

Highlight residues 7, 21, and 27 from the first chain in a protein:

In[1]:=
ResourceFunction[
CloudObject[
  "https://www.wolframcloud.com/obj/jasonb/DeployedResources/Function/ProteinResiduePlot3D/index.html", Permissions -> "Public"]]["ExampleData/1PPT.pdb", {{1, 7}, {1, 21}, {1, 27}}]
Out[1]=

Highlight the first 20 amino acid residues from a structure from the PDB:

In[2]:=
ResourceFunction[
CloudObject[
  "https://www.wolframcloud.com/obj/jasonb/DeployedResources/Function/ProteinResiduePlot3D/index.html", Permissions -> "Public"]][
 ExternalIdentifier["PDBStructureID", "1akk"], Range[1, 20], ColorRules -> {_ -> Green}, IncludeHydrogens -> False, PlotTheme -> "Tubes"]
Out[2]=