001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 */ 021package org.biojava.nbio.structure.quaternary.io; 022 023import org.biojava.nbio.structure.io.mmcif.model.PdbxStructAssembly; 024import org.biojava.nbio.structure.io.mmcif.model.PdbxStructAssemblyGen; 025import org.biojava.nbio.structure.io.mmcif.model.PdbxStructOperList; 026 027import java.util.List; 028 029 030/** Defines the methods that have to be implemented by a class that provides the data that is necessary to recreate the correct biological assembly of a protein. 031 * This is very close to the way PDB is representing biological assemblies. For the outside it is probably easier to use the other way of accessing the data as defined in 032 * BioUnitDataProvider 033 * 034 * @author Andreas Prlic 035 * @since 3.0.5 036 */ 037public interface RawBioUnitDataProvider { 038 039 /** Tell the provider for which PDB ID the quaternary structure should be returned. 040 * 041 * @param pdbId 042 */ 043 public void setPdbId(String pdbId); 044 045 /** Data access method for list describing all assemblies 046 * 047 * @return 048 */ 049 public List<PdbxStructAssembly> getPdbxStructAssemblies(); 050 051 /** Data access method for list describing all assemblies 052 * 053 * @return 054 */ 055 public List<PdbxStructAssemblyGen> getPdbxStructAssemblyGens(); 056 057 /** Get all the possible operators 058 * 059 * @return 060 */ 061 public List<PdbxStructOperList> getPdbxStructOperList(); 062 063 064 /** Returns the number of available biological assemblies. 065 * 066 * @return 067 */ 068 public int getNrBiolAssemblies(); 069 070 071 /** Does the PDB ID have biological assembly information? 072 * 073 * @return boolean flag 074 */ 075 public boolean hasBiolAssembly(); 076 077 /** get the data for a particular pdbxStructAssembly. We start counting at 0. 078 * 079 * @param biolAssemblyNr 080 * @return 081 */ 082 public PdbxStructAssembly getPdbxStructAssembly(int biolAssemblyNr); 083 084 085 /** get the data for a particular pdbxStructAssemblyGen. We start counting at 0. 086 * 087 * @param biolAssemblyNr 088 * @return 089 */ 090 public List<PdbxStructAssemblyGen> getPdbxStructAssemblyGen(int biolAssemblyNr); 091 092 093}