# HG changeset patch # User Matt Shirley # Date 1371500253 14400 # Node ID 45031bbf6b27efcdcbbef70e9fcc12b577e8f39d # Parent b77840618b8f1ddbae4f4ba219a3b7e0bb57555f better sra_fetch code, compliant (?) datatype, updated dependencies in tool wrappers diff -r b77840618b8f -r 45031bbf6b27 fastq_dump.xml --- a/fastq_dump.xml Mon Jun 17 16:05:30 2013 -0400 +++ b/fastq_dump.xml Mon Jun 17 16:17:33 2013 -0400 @@ -1,4 +1,4 @@ - + format reads from NCBI SRA. fastq-dump --log-level fatal --report never --accession '${input.name}' --stdout $split $aligned '$input' > $output fastq-dump --version diff -r b77840618b8f -r 45031bbf6b27 sam_dump.xml --- a/sam_dump.xml Mon Jun 17 16:05:30 2013 -0400 +++ b/sam_dump.xml Mon Jun 17 16:17:33 2013 -0400 @@ -1,4 +1,4 @@ - + format reads from NCBI SRA. sam-dump $header $aligned $primary '$input' > $output sam-dump --version diff -r b77840618b8f -r 45031bbf6b27 sra_fetch.py --- a/sra_fetch.py Mon Jun 17 16:05:30 2013 -0400 +++ b/sra_fetch.py Mon Jun 17 16:17:33 2013 -0400 @@ -1,30 +1,41 @@ +import sys +import os from ftplib import FTP -import sys +import argparse -# Get accession number from argument -accession = sys.argv[1] -outfile = sys.argv[2] -prefix = accession[0:3] -middle = accession[3:6] -suffix = accession[6:9] +def main(args): + """ Get accession number from argument """ + prefix = args.accession[0:3] + middle = args.accession[3:6] + suffix = args.accession[6:9] -# NCBI SRA FTP site -ftp = FTP('ftp-trace.ncbi.nih.gov') + 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 -sra = open(outfile, 'wb') -ftp.login('ftp') -connected = False -while not connected: - try: - ftp.cwd('/sra/sra-instant/reads/ByRun/sra/' + - prefix + '/' + - prefix + middle + '/' + - prefix + middle + suffix + '/') - connected = True - except: - pass - -ftp.retrbinary('RETR ' + prefix + middle + suffix + '.sra', sra.write) -ftp.quit() + # 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) diff -r b77840618b8f -r 45031bbf6b27 sra_fetch.xml --- a/sra_fetch.xml Mon Jun 17 16:05:30 2013 -0400 +++ b/sra_fetch.xml Mon Jun 17 16:17:33 2013 -0400 @@ -1,6 +1,6 @@ - + by accession from NCBI SRA. - sra_fetch.py '$accession' '$output' + sra_fetch.py '$accession' -o '$output'