Exemple #1
0
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()
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #7
0
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
Exemple #8
0
    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
Exemple #9
0
    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
Exemple #10
0
    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
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #14
0
    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
Exemple #15
0
    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