| 0 | 1 from ftplib import FTP | 
|  | 2 import sys | 
|  | 3 | 
|  | 4 # Get accession number from argument | 
|  | 5 accession = sys.argv[1] | 
|  | 6 outfile = sys.argv[2] | 
|  | 7 prefix = accession[0:3] | 
|  | 8 middle = accession[3:6] | 
|  | 9 suffix = accession[6:9] | 
|  | 10 | 
|  | 11 # NCBI SRA FTP site | 
|  | 12 ftp = FTP('ftp-trace.ncbi.nih.gov') | 
|  | 13 | 
|  | 14 # Open file and transfer requested SRA as a file | 
|  | 15 # Try to change the working directory until it works | 
|  | 16 sra = open(outfile, 'wb') | 
|  | 17 ftp.login('ftp') | 
|  | 18 connected = False | 
|  | 19 while not connected: | 
|  | 20     try: | 
|  | 21         ftp.cwd('/sra/sra-instant/reads/ByRun/sra/' + | 
|  | 22                 prefix + '/' + | 
|  | 23                 prefix + middle + '/' + | 
|  | 24                 prefix + middle + suffix + '/') | 
|  | 25         connected = True | 
|  | 26     except: | 
|  | 27         pass | 
|  | 28 | 
|  | 29 ftp.retrbinary('RETR ' + prefix + middle + suffix + '.sra', sra.write) | 
|  | 30 ftp.quit() |