Credits
6
Types
Compulsory
Requirements
This subject has not requirements
, but it has got previous capacities
Department
CS;UAB
At the end of the course, students:
1 will know the basic concepts of programming, algorithmics and information management in solving problems of a biological nature through computer programs.
2. will be able to use the main algorithmic schemes and some of their variants that frequently appear in common Bioinformatics problems,
3. will recognize the cases of application of the main methods used in Bioinformatics to access data stored in computers, with special attention to efficient mechanisms for sequence treatment.
4. will know how to integrate access to large biological databases with access to other local information structures and combine them appropriately with the necessary algorithmic concepts.
5. will know how to interface to external tools and use common libraries that extend functionality and improve performance of Python programs.
The programming language used in this course is Python, which will be complemented with the occasional use of tools from the Operating System or external applications.
Teachers
Person in charge
- Miquel Angel Senar Rosell ( miquelangel.senar@uab.cat )
Others
- Abraham De la Rosa Ibarra ( abraham.delarosa@uab.cat )
- Elisa Heymann Pignolo ( elisa.heymann@uab.es )
- Sandra Adriana Mendez Valerio ( sandra.adriana.mendez@upc.edu )
Weekly hours
Theory
2
Problems
2
Laboratory
0
Guided learning
0
Autonomous learning
6
Competences
Knowledge
Skills
Competences
Objectives
-
Understand how to build a program and use additional tools to solve problems that use bioinformatics data.
Related competences: K3, K4, S7, C6, -
Understand the format and semantics of basic data structures used to represent biological data: sequencies, genomes,...
Related competences: K3, K5, S2, C6, -
Understand the most common operations that apply to bioinformatics data files and develop programs to perform them.
Related competences: K3, K4, K5, S2, S7, C6, -
Understand basic algorithm principles that are used to solve sequence alignment and pattern matching problems.
Related competences: K3, K4, K5, S2, S7, C6, -
Analyze solutions regarding time and memory cost and use programming components to improve performance.
Related competences: K3, S7, S8, C6,
Contents
-
Introduction
Python basics, flow control, functions, lists, dictionaries and structured data. -
Advanced data structures and string manipulation.
Sequences, Strings, and the Genomic Data. Basic manipulation of genomic sequences, kmers and motifs. -
Iterators, Comprehensions and Generators
Iterators and Comprehensions over collections. Principles and operation of Generators. -
Pattern searching and Regular Expressions
Finding patterns. Finding patterns with Regular Expressions. Creating and matching regex objects. -
Files and exception management. Common bioinformatics file formats
Basic operations with files. Exception management. Genomic data and common file formats in Bionformatics. -
Decorators and functional programming basics. map, filter, reduce, lambdas, zip, unzip, logging
Definition and usage of decorators. Use of special functions: map, filter, reduce, lambdas, zip, unzip, logging -
Sequence Alignment: basic definitions and methods
Alignment algorithms and dynamic programming. Alignment software and alignment statistics. -
Python extensions.
Python modules for OS interaction and folder manipulation, program interfaces (command line arguments), Biopython -
Advanced data analysis
Numpy, Pandas, Matplotlib
Activities
Activity Evaluation act
Theory
2h
Problems
2h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Teaching methodology
During theoretical sessions, the professor will expose programming concepts, combined with examples and problem solving.During problem-solving sessions, students will work on their own solving problems on a computer system, under supervision and assistance of the professor when needed.
Evaluation methodology
There will be two exams: a mid-term exam and a final examIn addition, there will be some evaluable problem tests taken during problem sessions, announced in advance.
FinalScore = 0.20*NP + 0.80*max(EF, 0.35*EP+0.65*EF)
where:
NP : Problem score. Short problem tests taken during problem sessions
EP: Partial exam score
EF: Final exam score
Students who fail the subject can take the reevaluation exam ER. In this case, the grade of ER will substitute the grade of the final exam EF in the formua of the computation of the final grade above.
Bibliography
Basic
-
Python for the Life Sciences. A Gentle Introduction to Python for Life Scientists
- Lancaster, Alexander; Webster, Gordon,
Apress,
2019.
ISBN: 9781484245231
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=5909881 -
An Introduction to bioinformatics algorithms
- Jones, Neil C; Pevzner, Pavel,
MIT Press,
2004.
ISBN: 9780262101066
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=3338847 -
Learning Python
- Mark Lutz,
O'Reilly Media, Inc,
2025.
ISBN: 9781098171278
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=31926500
Complementary
-
Python Programming for Biology
- Stevens, Tim J.,
Cambridge University Press,
2015.
ISBN: 9780521895835
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991005219278706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Previous capacities
Applied Programming IApplied Programming II
Introduction to Bioinformatics