PyLadies now in Stockholm!

This Saturday when all the sport enthusiasts were running the Stockholm marathon, I was rushing to Spotify HQ at Birger Jarlsgatan, excited to meet all the ladies curious about programming and Python at the first PyLadies meetup.

PyLadies’ strive to promote Python programming language and programming in general through different social activities, workshops and study groups.The goal is to increase the diversity of the coding community and attract more women into computing. This is done by creating a friendly and welcoming group where we can learn from each other.

Lynn Root came to Stockholm to help us to start off.  She told a bit about her own experience of starting the community of Python Ladies in the USA and

went on with the tutorial for the beginners! Have a look at her slides for the event over here: https://speakerdeck.com/roguelynn/pyladies-stockholm-workshop

And if you missed the tutorial, don’t worry, try to go through it yourself: http://newcoder.io/ and reach PyLadies through an IRC channel if you have any questions.

Lynn Root presenting PyLadies
Lynn Root presenting PyLadies

I volunteered to help with the future events, so I hope we’ll keep this ball rolling and a great autumn of coding awaits.

Boys, don’t forget to check back  for “PyLadies+friends” events when you can join our gang as well!

P.S. I was positively surprised with a very good organisation on the  Spotify‘s side. Food was delicious (Italian buffe) with lots of vegetarian and vegan options, traditional Swedish fika pastries were even more impressive.
PyLadies got the whole floor with the kitchen and an endless supply of coffee. All the new coder might possibly need, right? 🙂

How to learn programming for biologists

I recently had the pleasure to meet lots of fellow PhD students and post-docs that come to a point in their research when they realize they desperately need some computer programming skills. Excel just isn’t working when you have huge amounts of data from your experiments or when you are fishing for new patterns and motifs.

Everyone shares a similar story. They started off with a book or a tutorial on R or Matlab and it all just was so confusing they lost their patience, motivation and got depressed. First of all, of course, don’t give up! We’ve all been there trying to make this stupid computer read our mind and do what we want it to do. The key to learn to use programming in your research is to start off with baby steps and never lose curiosity.

Programming is not only a useful tool for your great science ideas, it is also fun!

Here is a strategy I propose to you, my dear fellow biologist, who wants to learn to code:

1. So, let’s quizz your skills a little bit. I’m assuming you do well in math and you sleep with a book on Statistics under your pillow. So we got that covered.
Now, do you know how to use the command line to check what files are in your “Documents” directory, for example? Or have you perhaps taken a programming course at school in any programming language? If so, skip to the next step!
Otherwise, don’t worry and enjoy the power of Khan Academy programming basics tutorial. It will make you more familiar with variables, comments, functions and all other basic elements you are going to have in any programming language you will use in your work.

Try to go through a fun exercise, how about drawing this tree:

Do fun things with code
Do fun things with code

with code! See how it’s done here.

2. Now it’s time to get to some serious business and go through this course on Udacity: Intro to Computer Science.

The most important thing on this step is to learn how to learn things on your own. No one remembers all the commands by heart, but a good programmer knows where to find them! How to search for the function you need, how to debug your program and find errors, how to read documentation. Another important thing is to understand how a typical program you are going to write works. Say, you probably have your data in a file in some sort of format. Your program will need to read it, parse it into a representative data structure (what would that be? a table? a graph? a list of numbers?), then perform some analysis and output the result as a plot or another data structure. Keep it in mind when you’ll go through the course material.

Bonus points: you’ll finally understand what this nerdy guy from the Computational Biology department is talking about 🙂

A quicker alternative here will be to try CodeAcademy and start off with Python (i.e. now you can also move to step 3!): http://www.codecademy.com/tracks/python This is a great option if you want faster results and prefer interactive learning. 

 

3. By know you should feel less afraid of code than before. Now it is time to pick your language!

You probably heard of R before. R is a statistical toolbox and a really impressive tool for anyone interested in genomics. I have yet to find anything as useful. Although, R might be tricky to start off with, as it can be really confusing for a beginner.
Therefore I suggest you start with Python. It’s dirt simple! I promise you will start doing cool stuff from day one. It also has a large community online and lots of ready to use modules and libraries. And no weird R confusion to deal with. You will deal with it later if you really need to use Bioconductor or plot lots of heatmaps 🙂

Now it is still time for fun.

4. Now you might look around BioPython and decide if Python is a good choice for the problems you are facing: if you need to do heavy computing, sequence alignments, machine learning algorithms, – it most certainly is.

Although, if you just want to do some plots on your tabular format data every once in a while, cluster your experiments or do a PCA or if you want to enjoy all the public genomic data that is generously available on Bioconductor, it is time for you to master R!

Here is your go-to website that will get you started with the basics: http://tryr.codeschool.com/ Interactive learning for the win!
After that there is only trial and error method🙂 Don’t be afraid to ask your fellow bioinformaticians for help or search for your problem online!
More resources on learning R when you have basic programming knowledge:

Why plots using heatmap and heatmap.2 might look different?

Well, there are a lot of cases even if you use the same parameters, but here is one I faced.

Here I am, trying to plot the heatmap of my data using the standart heatmap function:

heatmap(data_matrix,col=brewer.pal(9,”YlOrRd”))

and then, with exactly the same parameters I run the gplots function:

heatmap.2(data_matrix,col=brewer.pal(9,”YlOrRd”))

and what do I see? the plots’ colors look completely different, like the data has been changed…
After some staring and debugging ( and thanks to @lundstrj’s awesome testing skills), here is what I found:
Even thought the documentation states that the default scale for the heatmap function is “none” if the matrix is not symmetrical:

scale character indicating if the values should be centered and scaled in either the row direction or the column direction, or none. The default is "row" if symm false, and "none" otherwise.

I’ve noticed that it actually defaults to “row” anyways. And wrong scaling can change your heatmap completely! So beware to scale by the unique experiments(on the rows in my case) to make the result more appearing. and don’t forget to add the scale parameter to the gplots function:

heatmap.2(data_matrix,col=brewer.pal(9,”YlOrRd”),scale=”row”)

Happy plotting!

*I’ve skipped the dendrograms and rows and columns names since in this example it’s only the image that matters

**The heatmap.2 plot is going to look a bit different after all – because of the different dimensions of the plot and modifications of the color range.

My first hackathon experience – devnull with Spotify

It was last weekend, it was called “Escape from the /dev/null” and the main sponsor was Spotify.

In short, I was glad I came! Despite the snowstorm that Stockholm’s weather prepared for us that day! I got to meet lot’s of awesome people and the atmosphere was really inspiring.

It’s started with Robert Hancock’s ( he is the leader of the New York Python Group, GTUG-NY and a long-time expert on real-time and resilient systems programming) talk on concurrency and Python. If you missed it and are interested in GIL, find your way to the slides – https://github.com/bobhancock/Pycon-2012-Parallelism-and-Concurrency

Now it’s worth mentioning, that devnull isn’t really a hackathon – it’s a recruitment game. Programmers get short challenges, this time in Python or Javascript, since that is what Spotify is looking for. And the goal is to solve all the challenges first and reach the prize! It’s a great idea, though, not everything worked as planned 🙂

This is how the map looked like:

map

I signed-up as a frontend developer to sort of test my newly acquired Javascript skills and because I haven’t touched Python for a while and wasn’t sure about it.

First, our team – A03, got stuck because we didn’t get any internet connection and the rest moved forward pretty quickly, as you can see:)

Then, the whole awesome software just broke and we were stuck again. But luckily there was a plan B! Old-fashioned way – challenges on paper and live interactions with judges from Spotify 🙂

Me and Jonas(our team’s backend) were really closed to the second prize, but not fast enough. The competition was tough I must say!

You can see the challenges we solved in our github repository. It was a pleasure working with Jonas, we had fun on the way and I learned a few new things both about JS and Python. And I would say those kind of events are really good to sort of test your basic programming skills, if you are in the beginning of your career.

I noticed that some of the more senior guys were quite bored with the challenges though. One way to improve it from my point of view is to formulate it according to the theme. All the geeks got so excited by the possibility “to escape from the alien space ship” using their programming skills. Why not build every challenge in the same manner?

…Create a page that illustrates the view from the illuminator with stars lighting up and fading away…

instead of just

…On mouse-click event create a circle that gradually grows in radius until it’s too big to be seen…

That will possible lead to less challenges but you could also time-box them and if a developer can’t manage on time – let him try another one.

dev/null

Peter Svensson and the other organizers did well despite of all the troubles that occurred during this the first of it’s kind crazy space competition, so thumb’s up for that and I’m sure the next devnull will be even more awesome!

Read more on how it was and why you should sponsor the next devnull from Peter himself – http://unclescript.blogspot.se/2012/04/everything-began-around-summer-last.html

More pictures here: http://www.meetup.com/Sthlm-Spotify-Tech-Group/photos/7519502/#

What do I want to be?

We all have these periods in life, when we are supposed to choose what to do next. who to be? 

The major in college, the job position, the future goal in your professional life.  

You know this HR people that always ask you “What do you want to do in 5 years?”🙂

And, God, how hard can it be sometimes to understand and analyze yourself.

What is it from the whole bunch of my interests, that I will be happy dealing with 8 hours a day, 7 days per week? What is it that I will be doing the best? Where will I achieve my full potential. And not the least important – get paid for it:) 

There are no easy way to answer these questions. 

What I’ve tried so far(from what actually helps): 

  • Ask more experienced people for advice, like your supervisor at the University/College, parents, people you think are successful in what they are doing etc. Ask them, why did they chose this way? 
  • Trying as many things as possible, broad your experience and analyze on the way. Which of these activities made me happy? Was I happy organizing the school event, is it fun to help people installing Windows? 
  • Finding a role model. What people inspire you? What do they do? What story do they have? Answering these questions helps a lot to understand which path in life you should choose yourself. 

So, when you have a clear picture of your future self, there will be only one question left – How do I achieve this?

Which is at least not that confusing anymore:)

What actually inspired me to write this post was this Internship Predictor

It is one of this career orientation tests, but it is actually the first one from what I’ve tried that showed the results I can agree with. Maybe it’s because I’ve already did all of the above?:)

Anyway, here are some results I got:

You value an internship in an organization that combines a sound basis of logic and explanations with opportunities to express your feelings and sensitivities to beauty.

Your interests gravitate to:

  • Higher education
  • Research
  • Medicine
  • Science
  • Computer industries
  • Engineering/design fields
  • You like to analyze objects using your highly developed independent thinking skills to create new knowledge or use existing knowledge.

  • You are technically proficient and oriented towards science.

  • You have strong academic skills and are seen by others as scholarly and often introverted.

You tend to rely on your intellectual and critical thinking skills to perform your work. You are more naturally reserved and introspective in your approach to solving problems and use your curiosity to drive original and complex developments. You prefer internships that are knowledge-based and value innovative thinking and abstract mental challenges. You like to collect and organize data that is used to solve intellectually stimulating problems.

Geek girls

 

Here are my new findings about geek girls on the web!

1. http://geekgirlmeetup.com

Conferences for GeekGirls interested in web, coding and business. Their  objective is to create new networks and increace women influence in the industry.

Web site is mostly in Swedish, conferences take place in

No events scheduled in Gothenburg yet though, but I hope it will change soon 🙂

Read more about geek girls meetings in Sweden here and here

2. Inspirational stories about women who own start-ups: http://www.fastcompany.com/1722401/25-women-run-startups-to-watch

3. Henriette Weber’s Blog.

http://henrietteweber.com/what-i-do/

Interesting posts about social web and how make it work for your image and business. She is also an active member of geek girls community.

Read geek-girl-meetup tag.

Tim Ferriss’s book “The four hour work week”.

I can advice it to anyone who is now unsatisfied with the job, wondering how to become more effective and such, always feel busy and exhausted.
Not everything there was useful for me, but I have been following some of his advices for a week now and already feel changes.
I don’t check e-mail 30 times a day now, I use blocking programs in my browser for facebook and twitter, I do the most important task before lunch or even earlier in the morning, I don’t think about work at home and always find a few minutes to read a book and have a cup of coffee. And it only helps to finish my daily “To Do List” 🙂
The book provides also a lot of biographical stories, humor and very easy-going.
Definitely, “must read” about personal development.

More about the book and it’s author: http://www.fourhourworkweek.com/blog/

You don’t have to be a geek kid to make a career in IT

I was reading (very useful and inspiring btw) interview with Audrey MacLean, expirienced technologist and entrepreneur. Audrey says that to encourage girl to come to technical field we need more games made specially for girls, which yeah, can be useful, but in the comments I saw one opinion which I can prove on my experience as well.

This is not computer itself and games that leads boys to engineering and IT career and not what will lead girls into it.

Here is the comment from Vik.

Getting girls interested in computing doesn’t start with computers, as Audrey MacLean suggests. It starts with parents who direct you in the right path of academics, life choices, and do their best to get you into the best academic environments. My parents in India did that for me at all levels of my early years, and prepared me for admission to MIT. When I got there, I had never seen anything more powerful than a Casio calculator. I graduated in computer science and engineering, one of 100 graduates, went on start software companies, and now have a great career at a top Silicon Valley company. My parents insisted on a strong foundation of math and science and showed me which careers could make my life. Try that with your children first, you don’t need to buy them an iPad. 

I’m totally agree with her, ‘cause this is how it happened with me as well. Although, I need to mention that influence of school teachers especially in math and physics can’t be underestimated. 

Girly laptops