Esempio n. 1
0
def isPaired(srafetchxml, accession):
	"""Check if the run with accession is paired."""
	if accession and \
		srafetchxml and \
		os.path.exists(srafetchxml):
		sraxmlparser = SRAXMLParser()
		runs = sraxmlparser.parse(srafetchxml)
		for run in runs:
			if run.accession.strip() == accession.strip():
				return run.is_paired
	return False
Esempio n. 2
0
def getRunsByPlatform(cf):
	"""Write the run accessions from a particular platform to a file."""
	platform = cf.get_parameter('platform', 'string')
	if not platform in ['454', 'Illumina']:
		cf.write_error("Unknown sequencing platform %s" % platform)
		return constants.GENERIC_ERROR
	srafetchxml = cf.get_input('srafetchxml')
	srarunlist = cf.get_output('srarunlist')
	sraxmlparser = SRAXMLParser()
	runs = sraxmlparser.parse(srafetchxml)
	writer = csv.writer(open(srarunlist, 'wb'), quoting=csv.QUOTE_NONE)
	writer.writerow(['NCBISRARunID'])
	num_accessions = 0
	for run in runs:
		if run.platform == platform:
			writer.writerow([run.accession])
			num_accessions += 1
	cf.write_log("GetRunsByPlatform: wrote %s run accessions" % num_accessions)
	return constants.OK
Esempio n. 3
0
def getExpAccessions(cf):
	"""Write the experiment accessions to a file."""
	platform = cf.get_parameter('platform')
	srafetchxml = cf.get_input('srafetchxml')
	sraexplist = cf.get_output('sraexplist')
	sraxmlparser = SRAXMLParser()
	runs = sraxmlparser.parse(srafetchxml)
	writer = csv.writer(open(sraexplist, 'wb'), quoting=csv.QUOTE_NONE)
	writer.writerow(['NCBISRAExpID'])
	accessions = []
	for run in runs:
		if platform and \
			not run.platform == platform:
			continue
		elif not run.exp_accession in accessions:
			writer.writerow([run.exp_accession])
			accessions.append(run.exp_accession)
	cf.write_log("GetExpAccessions: wrote %s experiment accessions" % len(accessions))
	return constants.OK
Esempio n. 4
0
def getRunsByExp(cf):
	"""Write the runs accessions for a given experiment to a file."""
	exp_accession = cf.get_parameter('accession', 'string')
	platform = cf.get_parameter('platform', 'string')
	srafetchxml = cf.get_input('srafetchxml')
	srarunlist = cf.get_output('srarunlist')
	sraxmlparser = SRAXMLParser()
	runs = sraxmlparser.parse(srafetchxml)
	writer = csv.writer(open(srarunlist, 'wb'), quoting=csv.QUOTE_NONE)
	writer.writerow(['NCBISRARunID'])
	index = 0
	for run in runs:
		if platform and \
			not run.platform == platform:
			continue
		elif run.exp_accession == exp_accession:
			writer.writerow([run.accession])
			index += 1
	cf.write_log("GetRunsByExp: wrote %s run accessions" % index)
	return constants.OK