def source_from_id(acc): client = DatasetClient() api_output = client.search(acc, "id") if api_output.datasets: datasets = api_output.datasets if len(datasets) > 1: hits = [] for dataset in datasets: if dataset.accession == acc: hits.append(dataset) if len(hits) == 1: source = hits[0].database return source else: click.echo('INFO') click.echo( f'{acc} is not a unique ID, leading to multiple hits.') sys.exit() else: source = datasets[0].database return source else: click.echo('INFO') click.echo(f'{acc} could not be found in one of the repositories.') sys.exit()
def test_get_object_from_json(self): client = DatasetClient() dataset = client.get_dataset_details("pride", "PXD000210") # dataset = Dataset.get_object_from_json(object_json) assert dataset.accession == "PXD000210" assert dataset.title == "Proteome analysis by charge state-selective separation of peptides: a multidimensional approach" assert len(dataset.dates) > 0 assert len(dataset.scores) > 0 assert len(dataset.cross_references) > 0 assert len(dataset.keywords) > 0 assert len(dataset.organisms) > 0 assert len(dataset.get_posttranslational_modifications()) == 7 assert len(dataset.get_diseases()) == 0 assert len(dataset.get_tissues()) == 0 dataset_transcriptomics = client.get_dataset_details("arrayexpress-repository", "E-TABM-555") # dataset_transcriptomics = Dataset.get_object_from_json(object_json) assert dataset_transcriptomics.accession == "E-TABM-555" assert dataset_transcriptomics.title == "Transcription profiling of rat to investigate technical and biological variability on the Agilent platform" assert len(dataset_transcriptomics.dates) > 0 assert len(dataset_transcriptomics.scores) > 0 assert len(dataset_transcriptomics.cross_references) > 0 assert len(dataset_transcriptomics.keywords) > 0 assert len(dataset_transcriptomics.organisms) > 0 assert len(dataset_transcriptomics.get_posttranslational_modifications()) == 0 assert len(dataset_transcriptomics.get_diseases()) == 0 assert len(dataset_transcriptomics.get_tissues()) == 4
def test_most_accessed(self): client = DatasetClient() res = client.most_accessed(20) assert res.status_code == 200 assert res.json()["count"] == 20 try: res = client.most_accessed(0) except BadRequest as err: assert err.status == 500
def test_latest(self): client = DatasetClient() res = client.latest(20) assert res.status_code == 200 assert res.json()["count"] > 0 try: client.latest(0) except BadRequest as err: assert err.status == DATA_NOT_FOUND
def test_most_accessed(self): client = DatasetClient() res = client.most_accessed(20) assert res.count > 0 assert len(res.datasets) > 0 try: res = client.most_accessed(0) except BadRequest as err: assert err.status == 500
def test_latest(self): client = DatasetClient() res = client.latest(20) assert res.count > 0 assert len(res.datasets) > 0 try: client.latest(0) except BadRequest as err: assert err.status == DATA_NOT_FOUND
def file_links(source, acc): client = DatasetClient() api_output = client.get_dataset_details(source, acc) file_links = {} if api_output.files: files = api_output.files[0]['files'] else: click.echo('INFO') click.echo( f'The accession {acc} is found in the {source} database, but contains no files.' ) sys.exit() return files
def test_get_similar_by_pubmed(self): client = DatasetClient() res = client.get_similar_by_pubmed("16585740") assert res.status_code == 200 try: res = client.get_similar_by_pubmed("qq9q9") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: res = client.get_similar_by_pubmed(None) except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_get_similar(self): client = DatasetClient() res = client.get_similar("PXD000210", "pride") assert res.status_code == 200 try: res = client.get_similar("aaaa", "pride") except BadRequest as err: assert err.status == 500 try: res = client.get_similar(None, "pride") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_get_file_links(self): client = DatasetClient() res = client.get_file_links("PXD000210", "pride") assert res.status_code == 200 assert len(res.json()) > 0 try: res = client.get_file_links("aaa", "pride") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: res = client.get_file_links(None, "pride") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_batch(self): client = DatasetClient() res = client.batch("PXD000210", 'pride') assert res.status_code == 200 assert res.json()["datasets"][0]["id"] == "PXD000210" try: client.batch("gulugulu11", "momomomomo") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: client.batch(None, "momomomomo") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_search(self): client = DatasetClient() res = client.search("cancer human", "publication_date", "ascending") assert res.json()["count"] > 0 try: dataset = client.search("j9j9j9j9@£", "publication_date", "ascending") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: dataset = client.search(None, "publication_date", "ascending") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_batch(self): client = DatasetClient() res = client.batch("PXD000210", 'pride') assert len(res.failure) == 0 assert res.datasets[0].accession == "PXD000210" try: client.batch("gulugulu11", "momomomomo") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: client.batch(None, "momomomomo") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_get_dataset_details(self): """ check the details for one dataset. :return: """ client = DatasetClient() dataset = client.get_dataset_details("pride", "PXD000210", False) assert dataset['accession'] == "PXD000210" assert len(dataset['description']) == 2227 try: dataset = client.get_dataset_details("PXD@£", "pride") except BadRequest as err: assert err.status == 500 try: dataset = client.get_dataset_details(None, "pride") except BadRequest as err: assert err.status == MISSING_PARAMETER
def test_search(self): client = DatasetClient() res = client.search("cancer human", "publication_date", "ascending") assert len(res.datasets) > 0 assert res.count > 0 res_other_pages = client.search("cancer human", "publication_date", "ascending", 1200, 30, 20) assert res_other_pages.count > 0 assert len(res_other_pages.datasets) == 30 try: dataset = client.search("j9j9j9j9@£", "publication_date", "ascending") except BadRequest as err: assert err.status == DATA_NOT_FOUND try: dataset = client.search(None, "publication_date", "ascending") except BadRequest as err: assert err.status == MISSING_PARAMETER