code: public static List<SiftsEntity> getSiftsMapping(String pdbId) throws IOException{
  		// grab files from here:
  
  		AtomCache cache = new AtomCache();
  
  		String path = cache.getCachePath();
  
  		pdbId = pdbId.toLowerCase();
  
  		String dirHash = pdbId.substring(1,3);
  		File siftsDir = new File(path , "SIFTS");
  
  
  		if ( ! siftsDir.exists()) {
  			logger.info("Creating directory {}", siftsDir.toString());
  			siftsDir.mkdir();
  		}
  
  		File hashDir = new File(siftsDir, dirHash);
  
  		if ( ! hashDir.exists()){
  			logger.info("Creating directory {}", hashDir.toString());
  			hashDir.mkdir();
  		}
  		File dest = new File( hashDir, pdbId + ".sifts.xml.gz");
  
  		logger.debug("testing SIFTS file " + dest.getAbsolutePath());
  
  
  		if ( ! dest.exists()){
  			String u = String.format(fileLoc,pdbId);
  			URL url = new URL(u);
  			logger.debug("Downloading SIFTS file {} to {}",url,dest);
  			FileDownloadUtils.downloadFile(url, dest);
  		}
  
  		InputStreamProvider prov = new InputStreamProvider();
  		InputStream is = prov.getInputStream(dest);
  		SiftsXMLParser parser = new SiftsXMLParser();
  
  		parser.parseXmlFile(is);
  
  		//System.out.println(parser.getEntities());
  		return parser.getEntities();
  
  
  	}
docs: Return the SIFTS mappings by getting the info from individual SIFTS xml files at URL {@value EBI_SIFTS_FILE_LOCATION}
  @param pdbId the pdb identifier
  @return
  @throws IOException if problems downloading or parsing the file