Repository navigation
BioCypher submission #110
Description
Submitting Author: Sebastian Lobentanzer (@slobentanzer)
All current maintainers: (@slobentanzer)
Package Name: biocypher
One-Line Description of Package: framework for creating biomedical knowledge graphs
Repository Link: https://github.com/biocypher/biocypher
Version submitted: 0.5.14
Editor: @arianesasso
Reviewer 1: @Zethson
Reviewer 2: @Midnighter
Reviewer 3: Sinna
Archive:
Version accepted: v0.5.33
JOSS DOI: N/A
Date accepted (month/day/year): 11/14/2023
Code of Conduct & Commitment to Maintain Package
- I agree to abide by pyOpenSci's Code of Conduct during the review process and in maintaining my package after should it be accepted.
- I have read and will commit to package maintenance after the review as per the pyOpenSci Policies Guidelines.
Description
- Include a brief paragraph describing what your package does:
BioCypher is a flexible and modular framework for the creation of knowledge graphs on the basis of ontologies, yielding a number of representations of the input knowledge sources. Its aim is to increase accessibility of biomedical knowledge graphs to a wide range of biomedical researchers.
Scope
-
Please indicate which category or categories.
Check out our package scope page to learn more about our
scope. (If you are unsure of which category you fit, we suggest you make a pre-submission inquiry):- Data retrieval
- Data extraction
- Data processing/munging
- Data deposition
- Data validation and testing
- Data visualization1
- Workflow automation
- Citation management and bibliometrics
- Scientific software wrappers
- Database interoperability
Domain Specific & Community Partnerships
- [ ] Geospatial
- [ ] Education
- [ ] Pangeo
Community Partnerships
If your package is associated with an
existing community please check below:
- Pangeo
- My package adheres to the Pangeo standards listed in the pyOpenSci peer review guidebook
-
For all submissions, explain how the and why the package falls under the categories you indicated above. In your explanation, please address the following points (briefly, 1-2 sentences for each):
-
Who is the target audience and what are scientific applications of this package?
-
Are there other Python packages that accomplish the same thing? If so, how does yours differ?
-
If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tagthe editor you contacted:
-
Technical checks
For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:
- does not violate the Terms of Service of any service it interacts with.
- uses an OSI approved license.
- contains a README with instructions for installing the development version.
- includes documentation with examples for all functions.
- contains a tutorial with examples of its essential functions and uses.
- has a test suite.
- has continuous integration setup, such as GitHub Actions CircleCI, and/or others.
Publication Options
- Do you wish to automatically submit to the Journal of Open Source Software? If so:
JOSS Checks
- The package has an obvious research application according to JOSS's definition in their submission requirements. Be aware that completing the pyOpenSci review process does not guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS.
- The package is not a "minor utility" as defined by JOSS's submission requirements: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria.
- The package contains a
paper.mdmatching JOSS's requirements with a high-level description in the package root or ininst/. - The package is deposited in a long-term repository with the DOI:
Note: Do not submit your package separately to JOSS
Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?
This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.
- Yes I am OK with reviewers submitting requested changes as issues to my repo. Reviewers will then link to the issues in their submitted review.
Confirm each of the following by checking the box.
- I have read the author guide.
- I expect to maintain this package for at least 2 years and can help find a replacement for the maintainer (team) if needed.
Please fill out our survey
- Last but not least please fill out our pre-review survey. This helps us track
submission and improve our peer review process. We will also ask our reviewers
and editors to fill this out.
P.S. Have feedback/comments about our review process? Leave a comment here
Editor and Review Templates
The editor template can be found here.
The review template can be found here.
Footnotes
-
Please fill out a pre-submission inquiry before submitting a data visualization package. ↩
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldspyos-accepted
Activity
lwasser commentedon May 12, 2023
hi @slobentanzer thank you for this submission and welcome to pyOpenSci! I just wanted to say hello 👋 and to let you know that we see this submission. We will get back to you with the start of our initial checks next week! In the meantime, have a wonderful weekend. we will be in touch. ✨
NickleDave commentedon May 16, 2023
Welcome to pyOpenSci @slobentanzer and thank you for your patience.
I'm happy to report that biocypher passes almost all of the initial editor checks.
There is one thing we need you to take care of before we start the review:
Please add the following to the README:
pip install biocypherand if there is a package on a community conda channel,conda install biocypher -c conda-forge(or bioconda or whatever)Please let me know once you have addressed this requirement.
The filled-out template with checks follows.
Editor in Chief checks
Hi there! Thank you for submitting your package for pyOpenSci
review. Below are the basic checks that your package needs to pass
to begin our review. If some of these are missing, we will ask you
to work on them before the review process begins.
Please check our Python packaging guide for more information on the elements below.
pip install biocypherworks. There is not a conda-forge package as far as I can tellimport package-name.README.mdfile with clear explanation of what the package does, instructions on how to install it, and a link to development instructions.CONTRIBUTING.mdfile that details how to install and contribute to the package.Code of Conductfile.NOTE: We prefer that you have development instructions in your documentation too.
YAMLheader of the issue (located at the top of the issue template).We appreciate each maintainer of the package filling out this survey individually. 🙌
Thank you authors in advance for setting aside five to ten minutes to do this. It truly helps our organization. 🙌
Editor comments
None of these are required but are just things I noted during the checks:
pip install packagefor the first andconda install package -c conda-forgefor the secondslobentanzer commentedon May 17, 2023
Hi @NickleDave,
thanks for the feedback, I added the requested details to the README.
Regarding your comments, here's my opinion:
NickleDave commentedon May 22, 2023
Thank you @slobentanzer for adding those details to the README. Looks great!
I hear you. I also do not like the idea of duplicating content in the README that can go out of sync.
One way around this is to have the single source of truth be your README, and then get that into your docs by using an include directive in RST or in MyST
There is an argument to be made that developers hyper-fixate on "Awesome" READMEs, mainly to impress other developers. Still, you don't want to lose a user because they found your GitHub repo first, and they couldn't figure out what your project really does, so they gave up without bothering to read the docs. What is the killer feature and what does it look like in code? If you can express that in one sentence and a single snippet with a few lines of code, at the top of both your README and on the index page of your docs, then you know you're making the best case for your package to new users. Of course that's not possible for every package, but seems like a good general goal to aim for.
I am not a conda expert but my understanding is that it's good practice to prefer
conda installoverpip install, to be able to reproduce environments. Basically because pip does things that conda doesn't do, or that conda doesn't know about. Maybe @jjhelmus can let us know if the advice in this blog post is still up-to-date:https://www.anaconda.com/blog/using-pip-in-a-conda-environment
I am less new to Python but I still find logging confusing 😭
I'd suggest a quote from Hitchhiker's guide to Python is relevant here:
https://docs.python-guide.org/writing/logging/#logging-in-a-library
For that reason I would avoid forcing a logging file and messages on your users.
I have looked several times but have never found a guide to logging that I felt answered my questions.
You probably know these already but:
The main question I had as a library developer is how to use the logger in my modules, and how should I configure it. Through trial and error I have found it's "good enough" practice to make a new logger instance in each module, assigning it
__name__as its name (as you will read in most guides). I have also found that if I do want to configure those logger instances, it's easiest to achieve this through a function I call that checks if there are already existing Handlers attached, so that I don't stomp on a user's existing configuration. See here: vocalpy/vak#535In my experience is that most scientific Python libraries do not include logging. There are exceptions I can think of:
You might find reading the code of those libraries helpful
NickleDave commentedon May 22, 2023
Hope I did not just overwhelm you with advice.
I will find an editor and we will proceed with the review.
I know I got off to a bit of a slow start--thank you for your patience.
NickleDave commentedon May 23, 2023
Hi again @slobentanzer, happy to inform you that @arianesasso will be editor for this review.
We are seeking appropriate reviewers now and she will tag them in once we have found them.
arianesasso commentedon Jun 1, 2023
Hello @slobentanzer 👋🏼 . Thanks for the intro @NickleDave :). It is my pleasure to review BioCypher! We are now in the process of finding reviewers for the package. Hopefully, depending on their response, this should take one to two weeks. I will keep you posted on this thread, and if you have any questions, feel free to reach out!
arianesasso commentedon Jun 24, 2023
Dear @slobentanzer, finding reviewers is taking a bit longer than expected. I hope that is ok. We might have someone already but he would only be able to start the review in a few weeks. Would that be acceptable?
slobentanzer commentedon Jun 26, 2023
Hi @arianesasso,
sure, I have no immediate time pressures.
40 remaining items
slobentanzer commentedon Nov 8, 2023
Thanks for the great input, @Zethson!
Midnighter commentedon Nov 8, 2023
Can confirm that all our comments regarding the code project have been addressed. Still think it'd be motivating for potential users unfamiliar with or new to knowledge graphs to see some usage scenarios, but we can understand that you consider it too much right now.
We recommend approval.
slobentanzer commentedon Nov 8, 2023
@Midnighter and Sinna, thanks a lot for your feedback! We agree that use cases are very important, and we will definitely be updating the docs regularly with more applied scenarios, as time permits. :)
NickleDave commentedon Nov 15, 2023
Hi all 👋 I'm here to help our excellent editor @arianesasso who had a family emergency.
Thank you @Midnighter and @Zethson for confirming your comments were addressed, and letting us know you recommend approval.
@slobentanzer I am happy to report that 🎉 BioCypher has been approved by pyOpenSci! Thank you for submitting! 🎉
Author Wrap Up Tasks
There are a few things left to do to wrap up this submission:
[](https://github.com/pyOpenSci/software-review/issues/issue-number).Editor Final Checks
Please complete the final steps to wrap up this review. Editor, please do the following:
6/pyOS-approved6 🚀🚀🚀.If you have any feedback for us about the review process please feel free to share it here. We are always looking to improve our process and documentation in the
slobentanzer commentedon Nov 20, 2023
Thanks a lot, @NickleDave! I have activated Zenodo, added the bade, and filled out the form. Thanks for everything to everybody who helped in this review! :)
NickleDave commentedon Nov 28, 2023
Thank you @slobentanzer and congratulations again! 🎉
I have announced it on our Discourse too.
If you are interested, we'd love to help you spread the word about BioCypher with a blog post on pyOpenSci's site.
@Midnighter and @Zethson huge thank you again for your work as reviewers. Please if you have a few minutes it would also help us if you could fill out the post-review survey.
And thanks of course to @arianesasso for being the editor for this one. I'll go ahead and close this issue.
slobentanzer commentedon Nov 28, 2023
Hi @NickleDave, thanks again (also to all), and happy to help with a blog post if it should be required.
NickleDave commentedon Nov 28, 2023
Definitely not required @slobentanzer, we just want to give you a venue to share BioCypher. Sometimes a blog post can be a way to talk about the package that's not as clear from docs and papers.
I'll invite you to our Slack team too if you'd like to join there and ask questions.
slobentanzer commentedon Nov 28, 2023
Sure, sounds great. Thanks!