CRTD – Programming for Bioinformatics, Prof. Michael Schroder, Predoc Melissa Adsame & Negin Malekian
20. December 2018
Anne Henka, Beatrice Krause, Yasmin Schulz, Lea Seibert
Group Project 4: Heatmap
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 2
Description
A heatmap is a special diagram which visualizes values in matrix as colors. It is often used for biological data analysis, especially in cases where large-scale pairwise comparisons are made (e.g. chemical similarity of compounds in a database)
Input A: file with 5-mer DNA sequences.
Output: A heatmap visualizing the pairwise sequence identity of the 5-mers.
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 3
Problem
Python script performs an all-vs-all sequence identity calculation and visualizes the results in a heatmap (using seaborn)
• Needed packages: numpy, pandas, seaborn, matplotlib
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 4
Approach
1. Read in the file and store the 5-mers.
2. Iterate through all pairs of 5-mers
3. Calculate the sequence identity and store it (e.g. in a dictionary)
4. Transform the dictionary into the correct format for the heatmap function
5. Call the heatmap functions with your data and save the plot
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 5
Solution - Step 1: Read in the file and store the 5-mers
Version I Version II
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 6
Solution - Step 2: Iterate through all pairs of 5-mers
• creating a list with Needleman-Wunsch-
algorithm and figure out the sequence identity
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 7
Solution - Step 2: Iterate through all pairs of 5-mersVersion I Version II
Almost same code, but…
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 8
Solution - Step 3: calculate the sequence identityVersion I
Version II
Your storage location
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 9
Solution - Step 4: Transform the dictionary into the correct format for the heatmap function
Version I
Version II
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 10
Solution - Step 4: Transform the dictionary into the correct format for the heatmap function
• colour: cmap(“...”)• heading: plt.title(“...”)• axis title:
plt.xlabel(“...”)/plt.ylabel(“...”)• empty space: linewidths = …
[number]• showing values: annot = True
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 11
Solution - Step 5: Call the heatmap functionsVersion I Version II
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 12
Our problems in the last week
correct code
mistakes:
• Crating a list with needleman -> slide 6
• Variation in scoring scheme -> slide 7
• Transforming data into dataframe with the help of dict() -> slide 9
• Calling heat map -> slide 11
=> The answer was not far away!
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 13
Do you have any questions?
Titel der PräsentationStruktureinheit der TU Dresden / Name Vorname des VortragendenOrt oder Anlass des Vortrags // 13.01.2018
Folie 14
Resources
• https://stackoverflow.com/questions/37790429/seaborn-heatmap-using-pandas-dataframe
• https://pythonspot.com/generate-heatmap-in-matplotlib/
• https://seaborn.pydata.org/generated/seaborn.heatmap.html