-
Notifications
You must be signed in to change notification settings - Fork 657
Google Summer Of Code
Hello, and welcome to MDAnalysis!
If you just found out about the MDAnalysis Python package from the GSoC website, you can have a look at the MDAnalysis 2021 Trailer [YouTube] to get an overview of the scope of the MDAnalysis package.
MDAnalysis is hosting Google Summer of Code 2023 Contributors. In short (more details below — please read the whole page if you are interested!:
- The GSoC Contributor will be mentored by at least two experienced MDAnalysis developers and receive support from Google.
- The GSoC Contributor will contribute code to the MDAnalysis Project.
Start by reading the MDAnalysis GSoC blog post (if you haven't done so already) and then come back here and read the whole page. We also have a GSoC Frequently Asked Questions page that we are updating as we get more questions.
The application window opens on March 20 - 18:00 UTC and closes on April 4 - 18:00 UTC (see the timeline).
Eligibility requirements are described in the GSoC FAQ:
- You must be at least 18 years of age when you register.
- You must be eligible to work in the country you will reside in during the program.
- You must be an open source beginner or a student.
- You have not been accepted as a GSoC Student or Contributor in GSoC more than once.
- You must reside in a country that is not currently embargoed by the United States. See Program Rules for more information.
MDAnalysis is a Python library for the analysis of computer simulations of many-body systems at the molecular scale, spanning use cases from interactions of drugs with proteins to novel materials. Therefore, our GSoC projects usually require a basic knowledge and hands-on experience of molecular dynamics simulations and the associated analyses, or equivalent experience in simulations and modelling of molecular systems (physics, biophysics, chemistry, or materials). For our suggested projects, please check carefully the project descriptions to see the associated desirable skills.
You should contact us before submitting your application, because we want to get to know you and we want to figure out if we will be able to work together. We will be happy to advise you on most aspects of the process. Getting in touch first is especially important if you are planning to apply to work on an original idea, rather than one of our suggestions.
So if you want to introduce yourself, discuss ideas or discuss your application then join the MDAnalysis GSoC mailing list ([email protected]).
Look at the Project Ideas 2023 page.
If you have your own idea, talk to us on the mailing list.
Previous Years
- Project Ideas 2022
- Project Ideas 2021
- Project Ideas 2020
- Project Ideas 2019
- Project Ideas 2018
- Project Ideas 2017
- Project Ideas 2016
The MDAnalysis development team is friendly, cooperative and informal. We consist of people from a wide range of backgrounds, including students, PhD-candidates, postdocs, professors and researchers actively using this software. We will take your work with respect and appreciate the time that you will spend on MDAnalysis since it will help us in both our own and our community's research projects.
The MDAnalysis community values diversity and is committed to providing a productive, harassment-free environment to every member. Our Code of Conduct explains the values that we as a community uphold. Every member (and every GSoC Contributor) agrees to follow the Code of Conduct.
The following developers have expressed interest in mentoring for GSoC in 2023:
- Hugo @hmacdope
- Orion @orionarcher
- Ian @ianmkenney
- Fiona @fiona-naughton
- Yuxuan @yuxuanzhuang
- Rocco @RMeli
- Richard @richardjgowers
- Lily @lilyminium
- Oliver @orbeckst
(For Mentors: see the Mentoring GSoC resource.)
If you already came into contact with molecular dynamics simulations or other computer simulations of many-body systems at the molecular scale and if writing code to solve interesting problems in physics, chemistry, biochemistry and material sciences sounds exciting rather than scary, the answer is generally YES.
The MDAnalysis GSoC team is looking for creative and enthusiastic individuals, willing to learn a lot of new skills. Given the scope of MDAnalysis, some previous exposure to or experience with molecular dynamics simulations is highly beneficial. Therefore, we value domain knowledge or previous experience with molecular simulations highly, especially in combination with some Python programming experience.
If you are performing molecular simulations and are excited about coding, please do apply! We find that the most successful GSoC Contributors are the ones who want to use the tools that they are writing.
We expect you to be an engaged member of the MDAnalysis community. In particular, by being a GSoC Contributor for MDAnalysis you agree to obey and uphold our Code of Conduct.
Communication
- Write a short report for us at least every 2 weeks (a short blog post every week is ideal!)
- Commit early and commit often! Push to github so that we can see and review your work.
- Actively work on our project timeline and communicate with us during the community bonding period
- Communicate every working day with your mentor. Just say "Hello" if you like. It can be via email, skype, github comments, etc
- If there is a reason why you can't work or can't contact us on a regular basis please make us aware of this.
- If you don't communicate with us regularly we will fail you.
Midterm and Final evaluations
- Set a realistic goal for mid-term. If you fail to meet your own goal we are more likely to fail you in the evaluations
- Have some code merged into our develop branch at the end of the summer to pass the final evaluation
- The last point is a hard requirement. Make sure that your time plan includes it.
For details regarding expectations for participating with MDAnalysis through GSoC, see the GSoC Onboarding Guide 2023 page.
Firstly, think about your choice of project carefully, you're going to be doing it for a couple of months, so it's important that you choose something you're going to enjoy. Once you've made your mind up:
- Make sure you've thought about the project and understand what it entails
- Don't be afraid to come up with original solutions to the problem
- Don't be afraid to give us lots of detail about how you would approach the project
- Think about the time you need to complete the work and show us your plan – is it going to be a midsize (175h) or long (350h) project?
- Contact us early! The earlier you contact us the earlier you will be able to get feedback from us to improve your application
Overall, your application should make us believe that you are capable of completing the project and delivering the functionality to our users. If you aren't sure about anything, get in touch with us, we're happy to advise you.
You must have at least one commit in the development branch of MDAnalysis in order to be eligible, i.e.. you must demonstrate that you have been seriously engaged with the MDAnalysis project.
We have a list of easy bugs including those we think would be good starter issues for GSoC applicants to work on in our issue tracker on GitHub.
We would ask that applicants only complete one "GSoC starter" labelled issues so that there are enough left for other applicants. You are welcome to address as many other issues in our issue tracker. We also appreciate if you write more tests or update/improve our documentation.
To start developing for MDAnalysis have a look at our guide for developers and follow the workflow there. Write to us on the mailing list if you have more questions about setting up a development environment.
We require that all of our GSoC Contributors have at least one commit in our develop
branch before the end of the summer. The best way to achieve this is to divide your project into small self contained subprojects and plan to merge at least one of them around midterm.
During your summer you'll encounter bugs in MDAnalysis or find code that can be refactored to help you implement your ideas. You can also immediately fix them in the develop branch and help us all out. This has several advantages. All your pull request will only concentrate on specific features and are much better to review. And you'll also get direct feedback from other devs and user during the summer.
Since this is a hard requirement we as mentors will also have an eye on that and check if your proposal incorporates it and also warn you ahead of time during the summer if we see that you might not make it. Communicating with us on a regular basis is vital for that, though.
- Why are you interested in working with us?
- What programming experience do you have?
- What scientific experience do you have that would be relevant for your proposed project?
- Have you used MDAnalysis for your research already?
- Do you have any exams during GSoC or plan a vacation during the summer?
- What problem does your proposed project address? What does it do that cannot be done yet with MDAnalysis or how will it improve an aspect of the existing software?
- What are the key ideas in your project?
- How will you solve the problem outlined above — tell us the details.
- Show us how your code will be used with some examples. Tell us what a user can expect to get from your code at the end of GSoC.
To get a feeling for the code and get some experience with our code you can go and tackle some of our easy bugs. Look at the code that you want to change, check if it follows our coding guidelines. Do some research on the API's you want to use, plan what classes you will add and how their public API will look. Write down your algorithms in pseudo code. The better your research is and the better you plan ahead the easier it will be to judge how long a given task will take. For your time estimates you should also consider that you can do less stuff during exams and try to be a bit conservative. If you have never done anything like GSoC before you will tend to underestimate the time to complete a task. We know that giving these estimates is not easy and that also professionals have problems with it. Having a good plan, knowing its weak and strong points will help a lot.