<div dir="ltr">To whom it may concern:<div><br></div><div>From 10-14 April 2017 we are again offering the Introduction to Python for Biologists course.</div><div><br></div><div>The course will be taught by Martin Jones, founder of Python for Biologists (<a href="http://pythonforbiologists.com/index.php/introduction-to-python-for-biologists/">http://pythonforbiologists.com/index.php/introduction-to-python-for-biologists/</a>) and writer of several Python books.</div><div><br></div><div>Apart from being one of the most popular programming languages for biologists, Python is also ideal to learn as your first programming language. So, whether you want to set your first steps on the programming path, or whether you just want to learn Python, this could be the course for you!</div><div><br></div><div>More information about the course can be found below.</div><div><br></div><div>With kind regards,</div><div>Bert</div><div><br></div><div>*********************************************************<br><div><br></div><div><span style="font-size:13px"><span class="gmail-il">INTRODUCTION</span> TO <span class="gmail-il">PYTHON</span> FOR <span class="gmail-il">BIOLOGISTS</span></span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">DATE: Monday 10 – Friday 14 April 2017</span><br style="font-size:13px"><span style="font-size:13px">VENUE: The King&#39;s Buildings, The University of Edinburgh, Edinburgh, Scotland, UK</span><br style="font-size:13px"><span style="font-size:13px">REGISTRATION DEADLINE: Monday 27 March 2017 noon</span><br style="font-size:13px"><span style="font-size:13px">CANCELLATION DEADLINE: Monday 3 April 2017 noon</span><br style="font-size:13px"><span style="font-size:13px">PLACES: 20 (first come, first served)</span><br style="font-size:13px"><span style="font-size:13px">REGISTRATION FEE: £525 (includes coffee/tea, but no lunch)</span><br style="font-size:13px"><span style="font-size:13px">INFORMATION: Bert Overduin (</span><a href="mailto:bert.overduin@ed.ac.uk" target="_blank" style="font-size:13px">bert.overduin@ed.ac.uk</a><span style="font-size:13px">), Martin Jones (</span><a href="mailto:martin@pythonforbiologists.com" target="_blank" style="font-size:13px">martin@pythonforbiologists.co<wbr>m</a><span style="font-size:13px">)</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">TO REGISTER: </span><a href="http://genomics.ed.ac.uk/services/introduction-python-biologists" target="_blank" style="font-size:13px">http://genomics.ed.a<wbr>c.uk/services/<span class="gmail-il">introduction</span>-pyt<wbr>hon-<span class="gmail-il">biologists</span></a><div style="font-size:13px"><br><span class="gmail-il">Python</span> is a dynamic, readable language that is a popular platform for all types of bioinformatics work, from simple one-off scripts to large, complex software projects. This workshop is aimed at complete beginners and assumes no prior programming experience. It gives an overview of the language with an emphasis on practical problem-solving, using examples and exercises drawn from various aspects of bioinformatics work. The workshop is structured so that the parts of the language most useful for bioinformatics are introduced as early as possible, and that students can start writing plausibly-useful programs after the first few sessions. After completing the workshop, students should be in a position to (1) apply the skills they have learned to tackling problems in their own research and (2) continue their <span class="gmail-il">Python</span> education in a self-directed way.<br><br>&quot;Great learning from someone with a <span class="gmail-il">biology</span> background rather than computer science - meant we were on the same wavelength.&quot; (February 2016)<br>&quot;Brilliantly well-run. From the book; to the USB stick with all the files we need; to the topics covered; to the system of helping us one-on-one, I cannot fault this course.&quot; (February 2016)<br><br>INSTRUCTORS<br><br>Dr. Martin Jones (Founder, <span class="gmail-il">Python</span> for <span class="gmail-il">Biologists</span>)<br>Dr. Bert Overduin (Training and Outreach Bioinformatician, Edinburgh Genomics)<br><br>WORKSHOP FORMAT<br><br>The workshop is delivered over ten half-day sessions. Each session consists of roughly a one hour lecture followed by two hours of practical exercises, with breaks at the organiser’s discretion. Each session uses examples and exercises that build on material from the previous one, so it’s important that students attend all sessions. A description of the sessions can be found at the bottom of this page.<br><br>WHO SHOULD ATTEND<br><br>This workshop is aimed at researchers and technical workers with a background in <span class="gmail-il">biology</span> who want to learn programming. The syllabus has been planned with complete beginners in mind; people with previous programming experience are welcome to attend as a refresher but may find the pace a bit slow. If in doubt, take a look at the detailed session content below or drop Martin Jones or Bert Overduin an email.<br><br>REQUIREMENTS<br><br>Students should have enough biological/bioinformatics background to appreciate the examples and exercise problems (i.e. they should know what a protein accession number, BLAST report, and FASTA sequence is). No previous programming experience or computer skills (beyond the ability to use a text editor) are necessar<font face="arial, helvetica, sans-serif">y. <span style="color:rgb(0,0,0)">During the workshop students will use their own laptops. Instructions for any software to be installed will be sent out prior to the course.</span><br></font><br>SESSION CONTENT<br><br>1. <span class="gmail-il">Introduction</span><br><br>In this session I <span class="gmail-il">introduce</span> the students to <span class="gmail-il">Python</span> and explain what we expect them to get out of it and how learning to program can benefit their research. I explain the format of the course and take care of any housekeeping details (like coffee breaks and catering arrangements). I outline the edit-run-fix cycle of software development and talk about how to avoid common text editing errors. In this session, we also check that the computing infrastructure for the rest of the course is in place (e.g. making sure that everybody has an appropriate version of <span class="gmail-il">Python</span> installed). Core concepts introduced: source code, text editors, whitespace, syntax and syntax errors, <span class="gmail-il">Python</span>versions<br><br>2. Manipulating text<br><br>In this session students learn to write very simple programs that produce output to the terminal, and in doing so become comfortable with editing and running <span class="gmail-il">Python</span>code. This session also introduces many of the technical terms that we’ll rely on in future sessions. I run through some examples of tools for working with text and show how they work in the context of biological sequence manipulation. We also cover different types of errors and error messages, and learn how to go about fixing them methodically. Core concepts introduced: terminals, standard output, variables and naming, strings and characters, special characters, output formatting, statements, functions, methods, arguments, comments.<br><br>3. Working with files<br><br>I <span class="gmail-il">introduce</span> this session by talking about the importance of files in bioinformatics pipelines and workflows, and we then explore the <span class="gmail-il">Python</span> interfaces for reading from and writing to files. This involves <span class="gmail-il">introducing</span> the idea of types and objects, and a bit of discussion about how <span class="gmail-il">Python</span> interacts with the operating system. The practical session is spent combining the techniques from session 2 with the file IO tools to create basic file- processing scripts. Core concepts introduced: objects and classes, paths and folders, relationships between variables and values, text and binary files, newlines.<br><br>4. Lists and loops<br><br>A discussion of the limitations of the techniques learned in session 3 quickly reveals that flow control is required to write more sophisticated file-processing programs, and I <span class="gmail-il">introduce</span> the concept of loops. We look at the way in which <span class="gmail-il">Python</span> loops work, and how they can be used in a variety of contexts. We explore the use of loops and lists together to tackle some more difficult problems. Core concepts introduced: lists and arrays, blocks and indentation, variable scoping, iteration and the iteration interface, ranges.<br><br>5. Conditions<br><br>I use the idea of decision-making as a way to <span class="gmail-il">introduce</span> conditional tests, and outline the different building-blocks of conditions before showing how conditions can be combined in an expressive way. We look at the different ways that we can use conditions to control program flow, and how we can structure conditions to keep programs readable. Core concepts introduced: Truth and falsehood, Boolean logic, identity and equality, evaluation of statements, branching.<br><br>6. Writing functions<br><br>We discuss functions that we’d like to see in <span class="gmail-il">Python</span> before considering how we can add to our computational toolbox by creating our own. We examine the nuts and bolts of writing functions before looking at best-practice ways of making them usable. We also look at a couple of advanced features of <span class="gmail-il">Python</span> - named arguments and defaults. Core concepts introduced: argument passing, encapsulation, data flow through a program.<br><br>7. Regular expressions<br><br>I show how a range of common problems in bioinformatics can be described in terms of pattern matching, and give an overview of <span class="gmail-il">Pythons</span> regex tools. We look at the building blocks of regular expressions themselves, and learn how they are a general solution to the problem of describing patterns in strings, before practising writing some specific examples of regular expressions. Core concepts introduced: domain-specific languages, modules and namespaces.<br><br>8. Dictionaries<br><br>We discuss a few examples of key-value data and see how the problem of storing them is a common one across bioinformatics and programming in general. We learn about the syntax for dictionary creation and manipulation before talking about the situations in which dictionaries are a better fit that the data structures we have learned about thus far. Core concepts introduced: paired data types, hashing, key uniqueness, argument unpacking and tuples.<br><br>9. Working with the filesystem<br><br>We discuss the role of <span class="gmail-il">Python</span> in the context of a bioinformatics workflow, and how it is often used as a language to “glue” various other components together. We then look at the <span class="gmail-il">Python</span> tools for carrying out file and directory manipulation, and for running external programs - two tasks that are often necessary in order to integrate our own programs with existing ones. Core concepts introduced: processes and subprocesses, the shell and shell utilities, program return values.<br><br>10. <span style="color:rgb(0,0,0)"><font face="arial, helvetica, sans-serif">Final day</font></span></div><p style="font-size:13px;margin:10px 0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;color:rgb(0,0,0)"><font face="arial, helvetica, sans-serif">The schedule for the final day will be set based on the progress of the course and the interests of the students. We will have time set aside for attendees to finish exercises, work on their own data, or get one-on-one help with real-world problems arising from their research. We may also use some of the time to cover more advanced topics of interest to the attendees, including BioPython, data visualisation, packaging and distributing code, and using alternative interfaces such as iPython.</font></p><div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>Bert Overduin, PhD</div><div>TRAINING AND OUTREACH BIOINFORMATICIAN</div><div><a href="mailto:Bert.Overduin@ed.ac.uk" target="_blank">Bert.Overduin@ed.ac.uk</a></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:small"><a href="http://orcid.org/0000-0002-5281-8838" target="_blank">orcid.org/0000-0002-5281-8838</a></span><br></div><div><br></div><div>EDINBURGH GENOMICS</div><div>The University of Edinburgh</div><div>Ashworth Laboratories<br></div><div>The King&#39;s Buildings</div><div>Charlotte Auerbach Road</div><div>Edinburgh EH9 3FL</div><div>Scotland, United Kingdom</div><div><br></div><div>tel. +44(0)1316507403</div><div><a href="http://genomics.ed.ac.uk" target="_blank">http://genomics.ed.ac.uk</a></div></div></div></div></div></div></div></div></div></div></div>
</div></div></div></div>