# History # 2.5.1 (2025-10-29) - Add prjna support in doi-to-identifiers [#249](https://github.com/saketkc/pysradb/pull/249) # 2.5.0 (2025-10-19) - Add pmid/doi-to-gse/srp conversion [#246](https://github.com/saketkc/pysradb/pull/246). # 2.4.1 (2025-09-27) - Add gse-to-pmid conversion [#241](https://github.com/saketkc/pysradb/pull/244). # 2.4.0 (2025-09-27) - Add sra-to-pmid conversion [#241](https://github.com/saketkc/pysradb/pull/241). Thanks [@andrewdavidsmith](https://github.com/andrewdavidsmith) for the idea. # 2.3.0 (2025-08-24) - Download logic improvements: remoted requests-ftp as requirement - Fix for handling missing metadata keys [#223](https://github.com/saketkc/pysradb/pull/223). Thanks [@andrewdavidsmith](https://github.com/andrewdavidsmith) # 2.2.2 (2024-10-03) - Fix for handling ENA urls for paired end data # 2.2.1 (2024-08-21) - Fix for handling ENA urls - Migrated to pyproject.toml # 2.2.0 (2023-09-17) - Add support for Biosamples and bioproject [#199](https://github.com/saketkc/pysradb/pull/198) - Use retmode xml for Geo search [#200](https://github.com/saketkc/pysradb/pull/200) - Documentation fixes ## 2.1.0 (2023-05-16) - Fix for [gse-to-srp] returning unrequested GSEs [#186](https://github.com/saketkc/pysradb/issues/190) - Fix for [download] using [public_urls] - Fix for [gsm-to-srx] returning false positives [#165](https://github.com/saketkc/pysradb/issues/165) - Fix for delimiter not being consistent when metadata is printed on terminal [#147](https://github.com/saketkc/pysradb/issues/147) - ENA search is currently broken because of an API change ## 2.0.2 (2023-04-09) - Fix for [gse-to-srp] to handle cases where a project is missing but SRXs are returned [#186](https://github.com/saketkc/pysradb/issues/186) - Fix gse-to-gsm [#187](https://github.com/saketkc/pysradb/issues/187) ## 2.0.1 (2023-03-18) - Fix for [pysradb download] - using [public_url] - Fix for SRX -\> SRR and related conversions [#183](https://github.com/saketkc/pysradb/pull/183) ## 2.0.0 (2023-02-23) - BREAKING change: Overhaul of how urls and associated metadata are returned (not backward compatible); all column names are lower cased by default - Fix extra space in \"organism_taxid\" column - Added support for Experiment attributes [#89](https://github.com/saketkc/pysradb/issues/89#issuecomment-1439319532) ## 1.4.2 (06-17-2022) - Fix ENA fastq fetching [#163](https://github.com/saketkc/pysradb/issues/163) ## 1.4.1 (06-04-2022) - Fix for fetching alternative URLs ## 1.4.0 (06-04-2022) - Added ability to fetch alternative URLs (GCP/AWS) for metadata [#161](https://github.com/saketkc/pysradb/issues/161) - Fix for xmldict 0.13.0 no longer defaulting to OrderedDict [#159](https://github.com/saketkc/pysradb/pull/159) - Fix for missing experiment model and description in metadata [#160](https://github.com/saketkc/pysradb/issues/160) ## 1.3.0 (02-18-2022) - Add [study_title] to [\--detailed] flag ([#152](https://github.com/saketkc/pysradb/issues/152)) - Fix [KeyError] in [metadata] where some new IDs do not have any metadata ([#151](https://github.com/saketkc/pysradb/issues/151)) ## 1.2.0 (01-10-2022) - Do not exit if a qeury returns no hits ([#149](https://github.com/saketkc/pysradb/pull/149)) ## 1.1.0 (12-12-2021) - Fixed [gsm-to-gse] failure ([#128](https://github.com/saketkc/pysradb/pull/128)) - Fixed case sensitivity bug for ENA search ([#144](https://github.com/saketkc/pysradb/pull/144)) - Fixed publication date bug for search ([#146](https://github.com/saketkc/pysradb/pull/146)) - Added support for downloading data from GEO [pysradb dowload -g GSE] ([#129](https://github.com/saketkc/pysradb/pull/129)) ## 1.0.1 (01-10-2021) - Dropped Python 3.6 since pandas 1.2 is not supported ## 1.0.0 (01-09-2021) - Retired `metadb` and `SRAdb` based search through CLI - everything defaults to `SRAweb` - `SRAweb` now supports [search](https://saket-choudhary.me/pysradb/quickstart.html#search) - [N/A] is now replaced with [pd.NA] - Two new fields in \`\--detailed\`: [instrument_model] and [instrument_model_desc] [#75](https://github.com/saketkc/pysradb/issues/75) - Updated documentation ## 0.11.1 (09-18-2020) - [library_layout] is now outputted in metadata #56 - [-detailed] unifies columns for ENA fastq links instead of appending \_x/\_y #59 - bugfix for parsing namespace in xml outputs #65 - XML errors from NCBI are now handled more gracefully #69 - Documentation and dependency updates ## 0.11.0 (09-04-2020) - [pysradb download] now supports multiple threads for paralle downloads - [pysradb download] also supports ultra fast downloads of FASTQs from ENA using aspera-client ## 0.10.3 (03-26-2020) - Added test cases for SRAweb - API limit exceeding errors are automagically handled - Bug fixes for GSE \<=\> SRR - Bug fix for metadata - supports multiple SRPs Contributors - Dibya Gautam - Marius van den Beek ## 0.10.2 (02-05-2020) - Bug fix: Handle API-rate limit exceeding =\> Retries - Enhancement: \'Alternatives\' URLs are now part of [\--detailed] ## 0.10.1 (02-04-2020) - Bug fix: Handle Python3.6 for capture_output in subprocess.run ## 0.10.0 (01-31-2020) - All the subcommands (srx-to-srr, srx-to-srs) will now print additional columns where the first two columns represent the relevant conversion - Fixed a bug where for fetching entries with single efetch record ## 0.9.9 (01-15-2020) - Major fix: some SRRs would go missing as the experiment dict was being created only once per SRR (See #15) - Features: More detailed metadata by default in the SRAweb mode - See notebook: ## 0.9.7 (01-20-2020) - Feature: instrument, run size and total spots are now printed in the metadata by default (SRAweb mode only) - Issue: Fixed an issue with srapath failing on SRP. srapath is now run on individual SRRs. ## 0.9.6 (07-20-2019) - Introduced [SRAweb] to perform queries over the web if the SQLite is missing or does not contain the relevant record. ## 0.9.0 (02-27-2019) ### Others - This release completely changes the command line interface replacing click with argparse ([#3](https://github.com/saketkc/pysradb/pull/3)) - Removed Python 2 comptaible stale code ## 0.8.0 (02-26-2019) ### New methods/functionality - \`srr-to-gsm\`: convert SRR to GSM - SRAmetadb.sqlite.gz file is deleted by default after extraction - When SRAmetadb is not found a confirmation is seeked before downloading - Confirmation option before SRA downloads ### Bugfix - download() works with wget ### Others - [\--out_dir] is now [out-dir] ## 0.7.1 (02-18-2019) Important: Python2 is no longer supported. Please consider moving to Python3. ### Bugfix - Included docs in the index whihch were missed out in the previous release ## 0.7.0 (02-08-2019) ### New methods/functionality - \`gsm-to-srr\`: convert GSM to SRR - \`gsm-to-srx\`: convert GSM to SRX - \`gsm-to-gse\`: convert GSM to GSE ### Renamed methods The following commad line options have been renamed and the changes are not compatible with 0.6.0 release: - [sra-metadata] -\> [metadata]. - [sra-search] -\> [search]. - [srametadb] -\> [metadb]. ## 0.6.0 (12-25-2018) ### Bugfix - Fixed bugs introduced in 0.5.0 with API changes where multiple redundant columns were output in [sra-metadata] ### New methods/functionality - [download] now allows piped inputs ## 0.5.0 (12-24-2018) ### New methods/functionality - Support for filtering by SRX Id for SRA downloads. - \`srr_to_srx\`: Convert SRR to SRX/SRP - \`srp_to_srx\`: Convert SRP to SRX - Stripped down [sra-metadata] to give minimal information - Added [\--assay], [\--desc], [\--detailed] flag for [sra-metadata] - Improved table printing on terminal ## 0.4.2 (12-16-2018) ### Bugfix - Fixed unicode error in tests for Python2 ## 0.4.0 (12-12-2018) ### New methods/functionality - Added a new [BASEdb] class to handle common database connections - Initial support for GEOmetadb through GEOdb class - Initial support or a command line interface: - download Download SRA project (SRPnnnn) - gse-metadata Fetch metadata for GEO ID (GSEnnnn) - gse-to-gsm Get GSM(s) for GSE - gsm-metadata Fetch metadata for GSM ID (GSMnnnn) - sra-metadata Fetch metadata for SRA project (SRPnnnn) - Added three separate notebooks for SRAdb, GEOdb, CLI usage ## 0.3.0 (12-05-2018) ### New methods/functionality - [sample_attribute] and [experiment_attribute] are now included by default in the df returned by [sra_metadata()] - [expand_sample_attribute_columns: expand metadata dataframe based on attributes in \`sample_attribute] column - New methods to guess cell/tissue/strain: [guess_cell_type()]/[guess_tissue_type()]/[guess_strain_type()] - Improved README and usage instructions ## 0.2.2 (12-03-2018) ### New methods/functionality - [search_sra()] allows full text search on SRA metadata. ## 0.2.0 (12-03-2018) ### Renamed methods The following methods have been renamed and the changes are not compatible with 0.1.0 release: - [get_query()] -\> [query()]. - [sra_convert()] -\> [sra_metadata()]. - [get_table_counts()] -\> [all_row_counts()]. ### New methods/functionality - [download_sradb_file()] makes fetching [SRAmetadb.sqlite] file easy; wget is no longer required. - [ftp] protocol is now supported besides [fsp] and hence [aspera-client] is now optional. We however, strongly recommend [aspera-client] for faster downloads. ### Bug fixes - Silenced [SettingWithCopyWarning] by excplicitly doing operations on a copy of the dataframe instead of the original. Besides these, all methods now follow a [numpydoc] compatible documentation. ## 0.1.0 (12-01-2018) - First release on PyPI.