Internships Summer 2020: Closing thoughts and final presentations recording

Last week was the end of the Outreachy May 2020 Internship Round, where we held a final presentations call for our interns, mentors and community. Due to the wide range of time zones, from New York to Singapore, no one time was optimal for everyone, so we extend our sincere gratitude that all the students were willing to attend the call!

We are thankful to a Wellcome Trust Diversity and Inclusion Grant for funding three of our interns, Outreachy for matching this by funding two interns, and our main Wellcome grant for making it possible to fund two more. This brings us up to a count of seven interns, the highest number that we’ve had the pleasure of working with yet at one time! This wouldn’t have been possible without help from our external mentors — Akshat Bhargava, Aman Dwivedi, Ankur Kumar, Asher Pasha and Nikhil Vats — whom will all be receiving a small prize as a token of our gratitude.

During the internship period, we had to say goodbye to our valued InterMine team member for 5 years, Yo Yehudi, who drove our internship scheme to its current state and has left to become the Technical Lead for Open Source at the Wellcome Trust. Thanks to the efforts of our mentors for their support of our interns, and to Rachel for running the final presentation call, we were able to provide a closing to the internship period we can all be proud of.

A recording of the final presentation call is available on our YouTube channel and embedded below.

Additional information on our interns

Many of our interns have been writing blog posts throughout their internship, which you may find an enjoyable read:

The GitHub accounts of all our interns are listed below, if you wish to check out their contributions:

In closing

It’s been a joy to work with so many talented people, and this includes all the contributions during the Outreachy contribution period prior to intern selection. Many valuable contributions to InterMine projects were made during this period, and we regret we weren’t able to offer everyone an internship.

We hope the next year of internships will be as successful as this one, and look forward to coming up with more exciting internship projects, as well as working with more fantastic interns and mentors. Until then, let’s enjoy the fruits of this labour!

Outreachy Internship blog: It’s a Wrap

Hello! This blog is part of the series of blogs I am writing during my Outreachy 2020 summer internship with Intermine Boot project in the Intermine Organization.

This is the last week of the Outreachy Internship. From filling up the initial application form just based on the gut feeling even though I thought I lacked technical skills to apply for an internship, picking up intermine org to getting selected, the memories seem a bit fuzzy.

If someone would have asked me before applying to Outreachy whether I’d be able to get selected and successfully complete the internship, my answer would probably have been a no.

In a mere span of a few months, I feel like I have come quite a long way in terms of my confidence, approach to new problems and skills. I’ll reflect on three parts in this blog – my before and after thoughts of the internship, how Outreachy helped me grow and progress of my project.

Apart from my little stint at Hacktoberfest 2019, I did not have any quotable experience working with OpenSource. I feel lucky to land in such an encouraging org. I have had trouble thinking about communicating during the project as I have mostly just communicated in my mother tongue so understanding different accents or fear of mis-pronouncing words, mis-form sentences are there. But I never saw any judgement from anyone based on how correct my communication skills were. The only important thing is to express yourself. This really helped my self confidence. Before applying to Outreachy, I thought it is for people who have good open source experience and skill set, who have worked on reasonably big projects and are able to carry on the project completely independently. Now, I would say Outreachy is for anyone having basic skills and trying to learn new things. The collaborative environment of open source would surprise you.

I think Outreachy has helped me grow in a multitude of ways. It has definitely boosted my self confidence. It taught me working in collaborative projects and how it is ok to ask for help when stuck and not feel bad about it. Amongst technical skills, I have learnt about docker, docker-py, github actions, picked up more info about bash, python along the way.

The concept of having a mentor (actually two mentors!) is great. I have a background in research where most of the time I am all on my own to move the project forward (codewise) if stuck. Discussions with the advisor are mainly on the theoretical and experiment part. I am very grateful for my mentors being patient and guiding me during the internship.

I have definitely deviated from my initial project proposal. Some old tasks were removed paving the way for picking new tasks along the way. I think majorly the task of setting up wizard and configuration was not touched because they are not ready to be integrated. The task of running any mine (and not just mines based on biotestmine) would still require a bit of tussle. So there are definitely many open tasks requiring contribution.

I have got a taste of open source from Outreachy and hope to carry it forward. 

All good things come to an end eventually, but the next experience awaits

Anonymous

Outreachy Internship blog: After the internship

Hello! This blog is part of the series of blogs I am writing during my Outreachy 2020 summer internship with Intermine Boot project in the Intermine Organization.

In this blog, I reflect on my academic journey so far and what I would like to do after the Outreachy internship ends.

I have done my schooling in Rajasthan, India. After appearing for RPET (Rajasthan Pre Engineering Test), a popular entrance exam for engineering college admissions in Rajasthan, I got admitted in Information Technology branch in Govt. Women College in Rajasthan which is one of the best Women only Colleges in India.

I had worked on some projects in college but exposure to diverse technologies was very much less. I felt compelled to pursue a master’s degree to both increase job opportunities and dive deeper in one of the domains in computer science.

After completing the BTech I worked in a startup, After that I got admission in IIIT Hyderabad, India in 2017 as a part-time Mtech student in computer science. As my interest developed, I talked to different research advisors for exploring my knowledge in research and converted to full-time MS student in data science under Prof P. Krishna Reddy. My MS would tentatively finish around May/June 2021.

I am looking towards joining the industry in an engineering role. I am interested both in data science and software development. My college organizes campus placement sessions around December every year. After Outreachy, I am planning to polish my data structures and algorithms knowledge and sit for campus placement.

I feel that after coming to IIIT, I have gained a lot of skills. I have worked on projects in distributed systems and machine learning. I was head teaching assistant for the Distributed Systems course and managed making assignments and paper evaluations for a class of around 150 students.

I am open to learning new skills for advancing my career. I am also open for remote jobs. I can communicate in Hindi and English language.

Github: https://github.com/22PoojaGaur
Linkedin: https://www.linkedin.com/in/pooja-gaur-b5848048/

To everybody reading this. Please feel free to contact me in case you want to ask anything or you feel that I could be a part of your organization!

The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle.

Steve Jobs

Outreachy Internship blog: Half Time

Hello! This blog is part of the series of blogs I am writing during my Outreachy 2020 summer internship with Intermine Boot project in the Intermine Organization.

I started the Outreachy internship with Intermine on 19th May 2020. As I write this blog, I have covered a little over half of this 3 month journey. Through this blog, I will look back in retrospect on what has been done, what goals have been achieved, what goals have been changed, what remains in the coming half of Outreachy. Let’s get started!

I am working on the Intermine boot project in the Intermine organization. As part of the internship, the goal is to improve the intermine boot functionality for local instance setup and integrate it with cloud API for other features. The intermine boot project is at a very early stage of development. Let’s break down the tasks in few big chunks:
– Implement versioned mine data uploading to cloud storage.
– Create Continuous Integration setup case
– Add wizard and configurator to get custom configuration from project
– Use all of the above to orchestrate docker containers for usage.

As with all projects, you can not plan everything beforehand and requirements change/emerge as the project evolves. Right from the start, one additional task was updated to move the intermine_boot project from using docker-compose file to use docker-py for setting up intermine instance. Another extra work was to add docker-intermine-gradle as a submodule to the project.

The wizard and configurator are part of the Intermine Cloud project. They are not at a state where we can integrate them intermine_boot right now. So, they’ve been moved back in the project and that task would be pursued if they manage to be at a state so that they can be integrated. In place of that, my mentor has added other tasks which are needed to improve the usability of intermine_boot.

I have submitted 6 pull requests for the project which cover some of the tasks mentioned above. I am fairly happy with my progress. There were roadblocks which led to slower progress than I would have initially assumed but I think I am getting better equipped to handle the coming half of the project.

I feel very happy that I got accepted to such an amazing community and got a great mentor!

Now, buckling up for the next half of the internship to get stuff done!!

Start by doing what’s necessary, then do what’s possible; and suddenly you are doing the impossible 

Saint Francis of Assissi

Outreachy Internship blog: A beginner’s guide to Intermine Boot

Hello! This blog is part of the series of blogs I am writing during my Outreachy 2020 summer internship with Intermine Boot project in the Intermine Organization.

Data is of paramount importance in research works. In biological research domains, there are multiple research communities working and generating new biological datasets for DNA, yeast, mouses etc etc. At the same time, there are many researchers who need to work with these datasets for their research projects.

One way to share data may be to just hand over archived datasets. In this case, there are numerous problems like, how can you understand the data format, how do you clean this data in case of any inconsistency, how do you search through this data, how do you integrate this data with different datasets, how do you store huge data.

Intermine is a biological data warehouse which aims to resolve these issues and make accessing data easier for researchers. Once a dataset is added to intermine, users can perform complex queries over it to get the required information.

There are different intermines for different types of data like FlyMine, YeastMine, HumanMine, WormMine. The intermine project is open source and it allows research organizations to set up intermine instances dedicated to their datasets.

An intermine instance provides both web app and web service where you can host data and clients can make queries to get integrated biological data. Now that we have covered basics, let’s move towards why the project I am working on becomes relevant!

Setting up your own instance of intermine is a time consuming and complex process requiring a fair amount of Linux administration skills. We would want to make this process easier so that people with very little programming knowledge can do it. Intermine cloud project attempts to solve this and lower the barrier of running an intermine instance.

Intermine Cloud is composed of three main parts – wizard, configurator and compose. The wizard provides an easy way for setting custom configuration for the new intermine instance. The configurator is the backend of the wizard which creates necessary configuration files required to build the intermine instance. Once an intermine instance is built, the compose handles deploying and managing intermine instances on the cloud.

At times, a user may want to set up the intermine instance locally to see how the project will look or while he is trying to make some customizations to extend intermine for the different use cases. Or if he wants to host the intermine instance on his own servers. That’s where the Intermine Boot project comes in.

Intermine Boot is a command line tool which aims to allow users to easily setup local intermine instances inside docker containers, upload data archives to the cloud and other functionalities to make the convenience features for users.

Let’s understand the use case with an example. Suppose as an end user, you get interested in intermine. You want to set up and host your intermine instance on your servers. You dig in the documentation, start setting up postgresql, gradle, perl, solr etc etc. Meanwhile, you are also polluting your system’s environment in case you are not using docker or any other virtualization. The intermine boot aims to make this process as easy as running few commands on terminal. Below is a meme version to explain the benefits in a funny way!

You can find the intermine boot at https://github.com/intermine/intermine_boot and all intermine org projects at https://github.com/intermine

This is enough introduction for the Intermine and Intermine boot. Feel free to dive in the project now, we have a lot of interesting things going on!

If you can’t explain it simply, you don’t understand it well enough.

– Albert Einstein

Outreachy Internship blog: Everybody Struggles!

Hello! This blog is part of the series of blogs I am writing during my Outreachy 2020 summer internship with Intermine Boot project in the Intermine Organization.

No matter how experienced or novice a person is, everybody experiences struggle at some point in their journey. The statement seems pretty easy to admit for many people. But when you are a beginner stepping your foot in the mammoth field of software development, it’s very difficult to acknowledge that even your mentors or other senior developers would have ever struggled at basic problems like you do. This gap in acknowledgement creates an inferiority complex and makes your journey to the top much more difficult than it should be.

Today, I’ll be sharing one such incident where I was stuck on an issue for quite a long time just because I was hesitant to ask someone else. As you read on, I’ll recommend to ignore all the technical jargon in the coming paragraphs if you don’t get it as that’s not essential to the point I want to make. There can be lot of similar situations.

I am in my third week of internship with Intermine. I have been doing some form of coding for past 4 years or more (mostly as part of my course curriculum) but I am still very much a beginner in most of the domains. Giving some context to the following discussion, the intermine_boot project is a command line tool to ease the building process for the Intermine instances. It fetches an already built docker image or builds a docker image if needed and runs docker container with the image to get the intermine instance running. I was working on a task to modify the build file for a docker image in such a way that a new image is only built if a build folder does not already exist on the system. To test the changes, I’d have to run the intermine_boot command in such a way that the rebuild of the image is triggered and I can see if the changes are taking effect. My mentor, Kevin, gave me instructions on how to test this. The instructions, although clear, involved a number of steps out of which one step wasn’t clear to me even after going through the explanation multiple times. The fear of asking a stupid question kicked in and I thought I’ll just go on with whatever I understood.

I started my 16 hour long journey to debugging my changes by modifying the code and testing the functionality. I followed the instructions and tested my build and it failed (obviously, as I was missing that piece). I searched the error online to no and landed on some stack overflow results. I tried to make the suggested changes without understanding them and it resulted in other errors. Finally, I gave up and took a nap for the second time. After waking up I was attaching the errors in a message to ask the mentor again. But, voila! When I started putting all things together during asking I realized the fix that could be useful and it worked. I realized that I had become frantic and started trying a lot of things without understanding them.

I took-away following lessons from this incident and consciously try to follow them.

  1. When you don’t understand what the other person has said, don’t just assume that you will figure it out. Just ask him again to clarify and that will save you a lot of time.
  2. When stuck on issue, you can become frantic and trying random solutions. Just take a small break or nap and see the magic.
  3. Don’t code before understanding what you are trying to do. It’s a recipe for failure.

The Struggle you are in today is developing the Strength you need for tomorrow

– Robert Tew

Outreachy Interview: Sakshi Srivastava on JavaScript data visualisations for BlueGenes

This is our blog series interviewing our 2020 Outreachy interns, who are working remotely for InterMine for 3 months on a variety of projects. We’ve interviewed Sakshi Srivastava, who will be working on data visualisations for BlueGenes.

Hi Sakshi Srivastava! We’re really excited to have you on board as part of the team this summer. Can you introduce yourself? 

Corona Namaste everybody! Delighted to be a part of the InterMine team. I’m an undergraduate pursuing Bachelor of Technology in computer science from Guru Gobind Singh Indraprastha University, Delhi, India. I’ve been working with JavaScript and the web ecosystem for the last 2 years. I like to take part in tech meet-ups and hackathons (also, have won a few of them). I like to solve puzzles that involve logical and mathematical questions. I’m also doing competitive programming to increase my problem-solving ability. I love to draw and paint, although I haven’t done it from the past few months, as it’s my best to escape from the real world and take a break from everything going on in life. I like to listen to soft relaxing music and play guitar sometimes. When I’m not on my laptop, you will mainly see me sleeping (mostly :P), delved into some interesting chat with friends, or day-dreaming. I’m in the phase of inspecting different kinds of technology sectors to discover the one which flatters me the most. One of my magnificent project in the field of data visualisation is IPLDataVizProject which was given in an interview as a task.

What interested you about Outreachy with InterMine?

Biologists study life on scales from single molecules to whole organisms to entire ecosystems. I’ve never explored the bioinformatics world much but getting acquainted with the science behind life always interests me. InterMine fits like a glove to me. Also, javascript is exactly where my interest revolves. I wanted to strengthen my skills and increase my capability to bring more and more conversions. Consequently, this perfect opportunity will give me a chance to get familiar with the underlying scientific notions by applying my computer science skills. But this is not the only reason that makes me choose InterMine. The primary reason was the optimistic environment at InterMine which never made me even go explore any other organisation during the application process. The mentors are highly admirable who always entertain the ideas, doubts, requests elegantly and motivate others to be awesome. The time spent with them discussing the details of the project was intriguing. They are one the most indispensable parts of the InterMine community.

Tell us about the project you’re planning to do for InterMine this summer.

The complexity of biological problems requires understanding and then analysis of networks and interactions. But when the data is huge it becomes difficult to get better insights easily. The aim of my project is to create different visualisation tools to propel the cluttered and chaotic data into an understandable form. This will help biologists to understand the networks and interactions between different entities in an easier way and consequently draw relevant conclusions with single sight to the graph.

Are there any challenges you anticipate for your project? How do you plan to overcome them?

As we know InterMine has tons of biological data worldwide. The procurement and comprehension of data are essential in order to mold it into meaningful visualisations and get better insights. I will try to get familiar with the biological entities prior to beginning each viz by studying the InterMine’s data models and with the help of mentors. This will help me to write better documentation or maybe it could light me with new viz ideas in my mind.

I also came up with an interesting idea to use storybook.js to showcase all our visualisation tools in one place for demo purposes without actually needing anybody to run the tools locally. I’ve started exploring monorepo techniques and how we can actually integrate it with our visualisation tools. This is going to be a new and engaging challenge for me as I’ve never worked with monorepos before. This is going to be fun.

Share a meme or gif that represents your project

Outreachy Interview: Pooja on the CLI tool for managing InterMine instances

This is our blog series interviewing our 2020 Outreachy interns, who are working remotely for InterMine for 3 months on a variety of projects. We’ve interviewed Pooja Gaur, who will be working on the InterMine Boot CLI tool project.

Hi Pooja! We’re really excited to have you on board as part of the team this summer. Can you introduce yourself? 

Hello!! Excited to join the Intermine team. I am from Ajmer Rajasthan, India. I am pursuing MS by research from IIIT Hyderabad, India. I have completed My btech Honours from Govt. Women Engineering College Ajmer, Rajasthan. After that I worked for two years in a startup, where I worked on automating common queries by pattern matching. Right now, I am a Research Student in the Data Science and Analytics lab at IIIT Hyderabad. My current research work deals with increasing revenue and user satisfaction for retail stores. My interest varies from research in data organization, data mining and analytics to web development. I developed interest in open source after participating in Hacktoberfest 2019. I came to know about Outreachy from one of my friends in college. I like dancing and visiting new places. I used to take part in regional dance competitions before joining college. 

What interested you about Outreachy with InterMine?

I was browsing the past projects on the outreachy site. From a coarse look, I shortlisted around 7 to 8 projects. The intermine’s documentation was clear for contribution, So I started digging deeper and developed more interest over time in this organization. I liked the idea of providing tech power to biologists to improve their work flow and ease their work.

When the projects list was out, I saw the making CLI tool project. I had manually set up the intermine which is a laborious process and I realised that this project would be very helpful for end users. Also my current knowledge is aligned to this project, and it would be helpful in extending my knowledge.

Tell us about the project you’re planning to do for InterMine this summer.

My project is Create a CLI tool for managing InterMine instances. Building an intermine is a laborious process and requires a lot of system knowledge. But every user may not have deep knowledge of the system. Intermine Boot is part of the Intermine Cloud project. Intermine boot is a convenience tool which provides a single command setup to easily create and manage the intermine instances locally. Along with local instance creation the project supports building instances inside the docker container for e.g to use in Continuous Integration.

My aim is to extend the intermine boot to implement the Continuous Integration use case. Here, a CI pipeline will be written (using travis) and a docker image will be created which can be loaded during CI pipeline to run tests. Along with it, I will integrate wizard and configurator with intermine boot to ease the configuration and setup of local instances of Intermine.

Are there any challenges you anticipate for your project? How do you plan to overcome them?

Although I am comfortable with python scripting and development, my experience with docker and continuous integration is minimal which could create a steeper learning curve.

To overcome these issues, I have already started digging a little deeper into project requirements and pick up required knowledge for docker and continuous integration.

Share a meme or gif that represents your project!

Outreachy Interview: Qian on the InterMine Training Portal

This is our blog series interviewing our 2020 Outreachy interns, who are working remotely for InterMine for 3 months on a variety of projects. We’ve interviewed Qian, who will be working on the InterMine Training Portal.

Hi Qian! We’re really excited to have you on board as part of the team this summer. Can you introduce yourself? 

Hi InterMine team! I feel so excited to be part of the team! I am a Computer Science undergraduate from National University of Singapore. Next semester I will be a sophomore. I transferred from Shanghai Jiao Tong University to NUS last year. Previously, I majored in chemistry and biology. So I have some biology background. I feel so happy to take advantage of both my major backgrounds to contribute to InterMine!

I did an HTML-related project last semester. This is the link. This is the pr I cooperated with my partner. We dealt with generating an HTML textbook in seconds which is our introductory book to programming. I learned Java and JavaScript this year. I also helped a professor to deal with huge data using Jupyter Notebooks last semester, from which I learned python. (To be frank, python is much easier than Java. I was so frustrated by Java final :(. )

I am a newbie in computer science. I feel very lucky there are many open CS resources  to help me learn basic concepts. And, open source platforms are good places to find people with similar interests. I learned much from InterMine discord chat!

Apart from studying, I love playing the piano. My biggest goal is to be able to play La campanella fluently. This is my favorite version.

What interested you about Outreachy with InterMine?

Among many projects, this project almost does not restrict anything. I can design the portal according to my own ideas (of course I get advice from mentors). This is my first internship so I want to try to be more flexible.

Another reason is InterMine is about biology data processing. I have a biology background and I am interested in genes. I think cooperating with computer science, especially data analysis, is the future of biology.

Further, I love the atmosphere in this community. Yo is a good mentor as she is so helpful and kind. Members in InterMine are all warm-hearted and enthusiastic about new ideas. I learned much during the application period, especially during this hard period. I got mental relaxation when communicating with people in InterMine!

Tell us about the project you’re planning to do for InterMine this summer.

  1. Change the layout of the training portal page to be more useful and beautiful. 
  2. Make text and video tutorials for different languages.
  3. Add some features to the page.
  4. Combine different tutorials together. 

Are there any challenges you anticipate for your project? How do you plan to overcome them?

I have to rewrite tutorials in different languages which I am not very familiar with. So I am learning Perl and R these days! 

Another challenge I think I will meet is I am not sure about the time arrangement. As this is my first internship, I don’t have experience in arranging a schedule by myself previously. I hope to finish as I wrote in my plan. To overcome it, I am going to get advice from my mentors and volunteers. As this is a 3-month internship, I think I can have better anticipation of productivity with the guidance of mentors after 2 or 3 weeks. Then I will adjust my plan timely.

Share a meme or gif that represents your project!