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 * Author: Daniel Asarnow 021 * Date: 2012-6-23 022 */ 023 024package org.biojava.nbio.structure.cath; 025 026import java.util.List; 027 028/** General API for interacting with CATH. 029 * 030 * @author Daniel Asarnow 031 */ 032public interface CathDatabase { 033 034 /** Return the CATH release version. 035 * 036 * @return CATH version 037 */ 038 public String getCathVersion(); 039 040 /** Return the CathNode for a node ID. 041 * 042 * @param nodeId 043 * @return CATH node 044 */ 045 public CathNode getCathNode(String nodeId); 046 047 /** Return list of CATH descriptions for node representatives at a CATH category (e.g. "T"). 048 * 049 * @param category 050 * @return CATH descriptions 051 */ 052 public List<CathDomain> getByCategory(CathCategory category); 053 054 /** Return list of CATH descriptions whose CATH codes (e.g. 1.4.6.10) start with the query. 055 * This is currently redundant with getDescriptionsByNodeId. 056 * 057 * @param query 058 * @return CATH descriptions 059 */ 060 public List<CathDomain> filterByCathCode(String query); 061 062 /** Return the CATH sub-tree for a particular domain. 063 * 064 * @param domain 065 * @return CATH sub-tree 066 */ 067 public List<CathNode> getTree(CathDomain domain); 068 069 /** Return list of CATH domains whose node name (e.g. Orthogonal Bundle) starts with the query. 070 * 071 * @param query 072 * @return CATH domains 073 */ 074 public List<CathDomain> filterByNodeName(String query); 075 076 /** Return list of CATH descriptions whose descriptions (name field) starts with the query. 077 * 078 * @param query 079 * @return CATH descriptions 080 */ 081 public List<CathDomain> filterByDescription(String query); 082 083 /** Return CATH description for node representative by node ID. 084 * 085 * @param nodeId 086 * @return CATH description 087 */ 088 public CathDomain getDescriptionByNodeId(String nodeId); 089 090 /** Return all CATH domains for a PDB ID. 091 * 092 * @param pdbId 093 * @return CATH domains 094 */ 095 public List<CathDomain> getDomainsForPdb(String pdbId); 096 097 /** Return CATH domain for CATH domain ID. 098 * 099 * @param cathId 100 * @return CATH domain 101 */ 102 public CathDomain getDomainByCathId(String cathId); 103 104 /** Return CATH description for CATH domain ID. 105 * 106 * @param cathId 107 * @return 108 */ 109 public CathDomain getDescriptionByCathId(String cathId); 110 111 /** Return all CATH domains for a particular CATH node. 112 * 113 * @param nodeId 114 * @return 115 */ 116 public List<CathDomain> getDomainsByNodeId(String nodeId); 117 118 public List<CathFragment> getFragmentsByPdbId(String pdbId); 119}