Mercurial > repos > matt-shirley > sra_tools
view sra_fetch.py @ 13:45031bbf6b27 draft
better sra_fetch code, compliant (?) datatype, updated dependencies in tool wrappers
author | Matt Shirley <mdshw5@gmail.com> |
---|---|
date | Mon, 17 Jun 2013 16:17:33 -0400 |
parents | ffdd41766195 |
children | 082fd6374582 |
line wrap: on
line source
import sys import os from ftplib import FTP import argparse def main(args): """ Get accession number from argument """ prefix = args.accession[0:3] middle = args.accession[3:6] suffix = args.accession[6:9] ftp = FTP('ftp-trace.ncbi.nih.gov') # Open file and transfer requested SRA as a file # Try to change the working directory until it works with open(args.out, 'wb') as sra: ftpPath = os.path.join('/sra/sra-instant/reads/ByRun/sra/', prefix, prefix + middle, prefix + middle + suffix) ftp.login('ftp') connected = False while not connected: try: ftp.cwd(ftpPath) connected = True except: pass ftp.retrbinary('RETR ' + prefix + middle + suffix + '.sra', sra.write) ftp.quit() def arguments(): parser = argparse.ArgumentParser(description="Download an SRA from the NCBI SRA FTP") parser.add_argument('accession', type=str, help="SRA accession ex: SRR000001") parser.add_argument('-o', '--out', type=str, help="Name for SRA file ") args = parser.parse_args() return args if __name__ == "__main__": args = arguments() main(args)