Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert FASTA_API from SoyBase to Microservice #629

Open
ctcncgr opened this issue Nov 7, 2024 · 6 comments
Open

Convert FASTA_API from SoyBase to Microservice #629

ctcncgr opened this issue Nov 7, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@ctcncgr
Copy link
Member

ctcncgr commented Nov 7, 2024

Convert the fasta-api implementation at, https://github.com/soybase/fasta-api, into a microservice.

@ctcncgr ctcncgr self-assigned this Nov 7, 2024
@ctcncgr ctcncgr added the enhancement New feature or request label Nov 7, 2024
@ctcncgr ctcncgr added this to the Convert gRPC-Proto to OpenAPI milestone Nov 7, 2024
@ctcncgr ctcncgr changed the title Convert FASTA_API from SoyBase to Microservices Convert FASTA_API from SoyBase to Microservice Nov 7, 2024
ctcncgr added a commit that referenced this issue Nov 7, 2024
ctcncgr added a commit that referenced this issue Nov 13, 2024
@ctcncgr
Copy link
Member Author

ctcncgr commented Nov 13, 2024

@nathanweeks could you build and test fasta_api from, https://github.com/legumeinfo/microservices/tree/fasta_api/fasta_api?

I think I got everything handled and conserved as much of the existing implementation as possible. All of the endpoints should function identically as far as user-land is concerned.

Thanks!

@nathanweeks
Copy link
Contributor

A few initial things:

  1. Several additional packages are needed in the requirements.txt: at least fastapi[standard], pysam and (for the venv-based installation shown in the README) setuptools
  2. With the latest pysam (0.22.1), the Dockerfile will need ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt due to pysam-developers/pysam issue #1257
  3. Not strictly necessary, but it might be helpful to mention docker compose usage in the README.md

ctcncgr added a commit that referenced this issue Nov 18, 2024
…v and prod, fix requirements.txt, add general compose.yaml. #629
@ctcncgr
Copy link
Member Author

ctcncgr commented Jan 16, 2025

Hey All,

Now that were back. Nathan can I get a set of test cases including the ones from the collaborator you had mentioned?

I'll get this setup with some tests and get this into main.

Thanks

@nathanweeks
Copy link
Contributor

Sorry for the delay---how about this to start with?

test.py.txt

A couple tests are commented out: need to find a valid bed file (currently doesn't handle non-standard bed w/ extra column), and the /alignment/count_coverage endpoint response doesn't behave as I would expect?

@ctcncgr
Copy link
Member Author

ctcncgr commented Feb 12, 2025

Thanks Nathan. I'm a bit underwhelmed by the behavior of not handling more than 3 columns in BED. This seems silly because I think "standard" BED really should support at least up to the 9 optional columns that are specified within the BED spec, https://genome.ucsc.edu/FAQ/FAQformat.html#format1

I'll have a look at both the BED stuff and the count_coverage endpoint.

@nathanweeks
Copy link
Contributor

Thanks Nathan. I'm a bit underwhelmed by the behavior of not handling more than 3 columns in BED. This seems silly because I think "standard" BED really should support at least up to the 9 optional columns that are specified within the BED spec, https://genome.ucsc.edu/FAQ/FAQformat.html#format1

I'll have a look at both the BED stuff and the count_coverage endpoint.

My description of the problem was ambiguous at best---the code as-is should handle between 3-9 "standard" BED columns, though it doesn't necessarily handle custom columns (e.g., datastore annotation 7-column BED, where the 7th column is a gene ID of type string instead of the standard BED "thickStart" of type integer).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants