annotate sra_tools-ffdd41766195/sra_fetch.py @ 2:4cd40c1ee8aa draft default tip

another message
author davelin1@gmail.com
date Thu, 28 Feb 2013 15:50:12 -0800
parents f1de190a2aef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f1de190a2aef Uploaded
dddd
parents:
diff changeset
1 from ftplib import FTP
f1de190a2aef Uploaded
dddd
parents:
diff changeset
2 import sys
f1de190a2aef Uploaded
dddd
parents:
diff changeset
3
f1de190a2aef Uploaded
dddd
parents:
diff changeset
4 # Get accession number from argument
f1de190a2aef Uploaded
dddd
parents:
diff changeset
5 accession = sys.argv[1]
f1de190a2aef Uploaded
dddd
parents:
diff changeset
6 outfile = sys.argv[2]
f1de190a2aef Uploaded
dddd
parents:
diff changeset
7 prefix = accession[0:3]
f1de190a2aef Uploaded
dddd
parents:
diff changeset
8 middle = accession[3:6]
f1de190a2aef Uploaded
dddd
parents:
diff changeset
9 suffix = accession[6:9]
f1de190a2aef Uploaded
dddd
parents:
diff changeset
10
f1de190a2aef Uploaded
dddd
parents:
diff changeset
11 # NCBI SRA FTP site
f1de190a2aef Uploaded
dddd
parents:
diff changeset
12 ftp = FTP('ftp-trace.ncbi.nih.gov')
f1de190a2aef Uploaded
dddd
parents:
diff changeset
13
f1de190a2aef Uploaded
dddd
parents:
diff changeset
14 # Open file and transfer requested SRA as a file
f1de190a2aef Uploaded
dddd
parents:
diff changeset
15 # Try to change the working directory until it works
f1de190a2aef Uploaded
dddd
parents:
diff changeset
16 sra = open(outfile, 'wb')
f1de190a2aef Uploaded
dddd
parents:
diff changeset
17 ftp.login('ftp')
f1de190a2aef Uploaded
dddd
parents:
diff changeset
18 connected = False
f1de190a2aef Uploaded
dddd
parents:
diff changeset
19 while not connected:
f1de190a2aef Uploaded
dddd
parents:
diff changeset
20 try:
f1de190a2aef Uploaded
dddd
parents:
diff changeset
21 ftp.cwd('/sra/sra-instant/reads/ByRun/sra/' +
f1de190a2aef Uploaded
dddd
parents:
diff changeset
22 prefix + '/' +
f1de190a2aef Uploaded
dddd
parents:
diff changeset
23 prefix + middle + '/' +
f1de190a2aef Uploaded
dddd
parents:
diff changeset
24 prefix + middle + suffix + '/')
f1de190a2aef Uploaded
dddd
parents:
diff changeset
25 connected = True
f1de190a2aef Uploaded
dddd
parents:
diff changeset
26 except:
f1de190a2aef Uploaded
dddd
parents:
diff changeset
27 pass
f1de190a2aef Uploaded
dddd
parents:
diff changeset
28
f1de190a2aef Uploaded
dddd
parents:
diff changeset
29 ftp.retrbinary('RETR ' + prefix + middle + suffix + '.sra', sra.write)
f1de190a2aef Uploaded
dddd
parents:
diff changeset
30 ftp.quit()