mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""
|
|
Connects to the URL specified and outputs builds available at that
|
|
DSN in tabular format. UCSC Main gateway is used as default.
|
|
build description
|
|
"""
|
|
|
|
import sys
|
|
import urllib
|
|
import xml.etree.ElementTree as ElementTree
|
|
|
|
|
|
def getbuilds(url):
|
|
try:
|
|
page = urllib.urlopen(url)
|
|
except:
|
|
print "#Unable to open " + url
|
|
print "?\tunspecified (?)"
|
|
sys.exit(1)
|
|
|
|
text = page.read()
|
|
try:
|
|
tree = ElementTree.fromstring(text)
|
|
except:
|
|
print "#Invalid xml passed back from " + url
|
|
print "?\tunspecified (?)"
|
|
sys.exit(1)
|
|
|
|
print "#Harvested from " + url
|
|
print "?\tunspecified (?)"
|
|
for dsn in tree:
|
|
build = dsn.find("SOURCE").attrib['id']
|
|
description = dsn.find("DESCRIPTION").text.replace(" - Genome at UCSC", "").replace(" Genome at UCSC", "")
|
|
|
|
fields = description.split(" ")
|
|
temp = fields[0]
|
|
for i in range(len(fields) - 1):
|
|
if temp == fields[i + 1]:
|
|
fields.pop(i + 1)
|
|
else:
|
|
temp = fields[i + 1]
|
|
description = " ".join(fields)
|
|
yield [build, description]
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) > 1:
|
|
URL = sys.argv[1]
|
|
else:
|
|
URL = "http://genome.cse.ucsc.edu/cgi-bin/das/dsn"
|
|
for build in getbuilds(URL):
|
|
print build[0] + "\t" + build[1] + " (" + build[0] + ")"
|