Untitled
unknown
python
2 years ago
1.1 kB
10
Indexable
import requests
def get_ena_run_ids(sample_ids):
base_url = 'https://www.ebi.ac.uk/ena/browser/api/xml'
# Create a comma-separated list of sample IDs
sample_ids_str = ','.join(sample_ids)
# Prepare the API request URL
url = f'{base_url}/runs/{sample_ids_str}'
# Send a GET request to the ENA API
response = requests.get(url)
# Check if the request was successful
if response.status_code == 200:
# Parse the XML response
xml_data = response.text
# Extract the Run IDs from the XML response
run_ids = []
for line in xml_data.split('\n'):
if '<RUN accession="' in line:
run_id = line.split('accession="')[1].split('"')[0]
run_ids.append(run_id)
return run_ids
else:
# Print an error message if the request failed
print(f'Failed to retrieve ENA Run IDs. Error code: {response.status_code}')
return []
# Example usage
sample_ids = ['SAMPLE_ID_1', 'SAMPLE_ID_2', 'SAMPLE_ID_3']
run_ids = get_ena_run_ids(sample_ids)
print(run_ids)
Editor is loading...