{"id":21645522,"url":"https://github.com/stefanches7/ensembl-ftp-search","last_synced_at":"2025-04-11T18:50:27.476Z","repository":{"id":146208201,"uuid":"92059870","full_name":"stefanches7/ensembl-ftp-search","owner":"stefanches7","description":"Various end-user tools for searching the FTP sites of the Ensembl project.","archived":false,"fork":false,"pushed_at":"2024-08-12T13:39:11.000Z","size":199,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T16:19:06.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanches7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-05-22T13:59:05.000Z","updated_at":"2025-02-26T21:47:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"9d5060fc-21fd-4bb0-a527-1d77ee285745","html_url":"https://github.com/stefanches7/ensembl-ftp-search","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanches7%2Fensembl-ftp-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanches7%2Fensembl-ftp-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanches7%2Fensembl-ftp-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanches7%2Fensembl-ftp-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanches7","download_url":"https://codeload.github.com/stefanches7/ensembl-ftp-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248463850,"owners_count":21108164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T05:57:46.588Z","updated_at":"2025-04-11T18:50:27.453Z","avatar_url":"https://github.com/stefanches7.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ensembl/Ensembl Genomes FTP search API ![alt link](https://travis-ci.org/stefanches7/ensembl-ftp-search.svg?branch=master)\nHTTP and JS interfaces for searching the FTP sites of Ensembl/Ensembl Genomes\n\nSummary\n-------\nThis API is a comfortable way to get the links to the files needed from [Ensembl FTP site] and \n[EnsemblGenomes FTP site]. I.e., having entered e.g. organism release name/taxonomy branch \nand data type you are interested in (say, \"Sophophora\" and \"vep\") you'll get all the file links to the files matching \nyour query (in this case all the links leading to \"vep\" files for all species that are Sophophora).\n\n[Ensembl FTP site]: ftp.ensembl.org\n[EnsemblGenomes FTP site]: ftp.ensemblgenomes.org\n\nCredits\n-------\n\nThe development of this API was started during [Google Summer of Code] program. [Ensembl]/[EG] development team, being a part of European Bioinformatics Institute, accepted the student, Stefan Dvoretskii (author of this repository), to start and develop this project under the mentorship of [Dan Staines] for the best of global Bioinformatics community. The repository author pays many thanks and appreciation to his mentor and Ensembl/EBI community for the great work together and Google Summer of Code community and orgs for making this collaboration technically possible.\n\n[Dan Staines]: https://www.ebi.ac.uk/about/people/dan-staines\n[Google Summer of Code]: https://summerofcode.withgoogle.com/\n[Ensembl]: https://www.ebi.ac.uk/services/teams/ensembl\n[EG]: https://www.ebi.ac.uk/services/teams/ensembl-genomes\n\nUsage\n-----\n### HTTP interface\n\nAPI can be accessed through HTTP requests to the various endpoints:\n\n* `/hello` - \"Hello World!\" healthcheck\n* `/search` - the main end-point for searching.\n* `/organismNameSuggestion`/`/fileTypeSuggestion` - pattern search for distinct organism_names/file_types in the local \ndatabase (links to organism names and file types database).\n\n#### Searching\n\n`/search` endpoint provides the interface to search the database applying all the filters specified. As of now, it will \n_intersect_ all the filters you have specified and return the _Java-like_ list of links that match your whole query (i.e.,\nlist will look like \\[\\\u003clink1\\\u003e, \\\u003clink2\\\u003e...\\]).\n\nThe available filters are:\n\n* `organismName` - organism _release_ name (lowercase, with underscores, e.g. \"drosophila_melanogaster\")\n* `fileType` - dataType, e.g. \"vep\" or \"fasta_cdna\" (fasta subtype after underscore)\n* `taxaBranch` - taxonomy _id_ (_number_) as of NCBI Taxonomy database (e.g. \"Drosophila melanogaster\" has id 7227)\n\nPlease note that `page` and `size` parameters are available for **paging** (they should also be _numbers_)\n\n_Examples_: \n\n`\u003cip\u003e:\u003cport\u003e/search?taxaBranch=7227\u0026file_type=vep\u0026page=1\u0026size=20` - vep files for Drosophila melanogaster, second page\nof 20 links (links 20-39 from the result)\n\n`curl \u003cip\u003e \u003cport\u003e -d organism_name='drosophila_melanogaster' -d fileType='vep'` - same, but the whole result set this time\n\n### Javascript interface\n\nMore user-friendly JS interface is available, see `web\\src\\js\\search-webui`.\n\n### Update job\n\nData indices, which are used by HTTP interface to provide search and suggestion functionality, are updated through Perl update job. Source code is to find in the `updatejob-perl` directory.\n\n## Setup \u0026 configuration\n### Requirements\n\nFollowing software is required to run the HTTP server:\n* **JDK1.8**\n* **MySQL**5.5+\n* *Gradle* \\*\n\n\\* Gradle can be automatically installed via Gradle Wrapper, that is:\n\nLinux: \n```bash\nensembl-ftp-search~$ ./gradlew\n```\n\nWindows:\n```cmd\nensembl-ftp-search\u003e exec gradlew.bat\n\n```\n\nJavascript user interface was built using *React* libraries and is therefore dependent on **Node** and `npm`.\n\nUpdate job requires *Perl 5.24+* to run.\n\n### Configuration\n\nSpring Boot application is configured using `main/resources/application.properties` file in the Java sources root **or** passing the command line arguments, e. g. `java -jar build/libs/ensembl-ftp-search-XXXXX.jar --server.port 9988`. See [Spring documentation] for a comprehensive list of Spring Boot options available.\nPlease _pay special attention_ to the `spring.datasource` group values, as they should point to **running and accessible\nMySQL database**. Without it, the application won't be able to start.\n\n[Spring documentation]: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html\n\n### Startup\n\nHTTP server is started with `./gradlew bootRun` (or `gradle bootRun` if you already have Gradle) command.\n\n### Logging \n\nHTTP server logs into the command line from which it was started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanches7%2Fensembl-ftp-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanches7%2Fensembl-ftp-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanches7%2Fensembl-ftp-search/lists"}