2525import org .biojava .nbio .structure .PDBStatus .Status ;
2626import org .biojava .nbio .structure .Structure ;
2727import org .biojava .nbio .structure .StructureException ;
28+ import org .biojava .nbio .structure .StructureIO ;
2829import org .biojava .nbio .structure .align .util .UserConfiguration ;
2930import org .biojava .nbio .structure .io .util .FileDownloadUtils ;
31+ import org .rcsb .mmtf .decoder .ReaderUtils ;
32+ import org .rcsb .mmtf .utils .CodecUtils ;
3033import org .biojava .nbio .core .util .InputStreamProvider ;
3134import org .slf4j .Logger ;
3235import org .slf4j .LoggerFactory ;
@@ -544,8 +547,15 @@ private File downloadStructure(String pdbId, String pathOnServer, boolean obsole
544547 File dir = getDir (pdbId ,obsolete );
545548 File realFile = new File (dir ,getFilename (pdbId ));
546549
547- String ftp = String .format ("%s%s/%s/%s" ,
548- serverName , pathOnServer , pdbId .substring (1 ,3 ).toLowerCase (), getFilename (pdbId ));
550+ String ftp ;
551+
552+ if (getFilename (pdbId ).endsWith (".mmtf.gz" )){
553+ ftp = ReaderUtils .getUrl (pdbId );
554+ }
555+ else {
556+ ftp = String .format ("%s%s/%s/%s" ,
557+ serverName , pathOnServer , pdbId .substring (1 ,3 ).toLowerCase (), getFilename (pdbId ));
558+ }
549559
550560 URL url = new URL (ftp );
551561
@@ -570,8 +580,6 @@ private File downloadStructure(String pdbId, String pathOnServer, boolean obsole
570580 logger .info ("Fetching " + ftp );
571581 logger .info ("Writing to " + realFile );
572582
573-
574-
575583 FileDownloadUtils .downloadFile (url , realFile );
576584
577585 // Commented out following code used for setting the modified date to the downloaded file - JD 2015-01-15
0 commit comments