Tutorial 8: Automatic Alignment Generation
[1]:
import homelette as hm
Introduction
Welcome to the eighth tutorial for homelette
, in which we will explore homelette
’s tool for automated alignment generation.
The alignment is a central step in homology modelling, and the quality of the alignment used for modelling has a lot of influence on the final models. In general, the challenge of creating solid sequence alignments is mainly dependent how closely the target and template are. If they share a high sequence identity, the alignments are easy to construct and the modelling process will most likely be successful.
Note
As a rule of thumb, it is said that everything above 50-60% sequence identity is well approachable, while everything below 30% sequence identity is very challenging to model.
homelette
has methods that can automatically generate an alignment given a query sequence. However, these methods hide some of the complexity of generating good alignments. Use them at your own discretion, especially for target sequences with low sequence identity to any template.
Note
Be careful with automatically generated alignments if your protein of interest has no closely related templates
After these words of caution, let’s look at the implemented methods:
alignment.AlignmentGenerator_pdb
: Query the PDB and local alignment with Clustal Omegaalignment.AlignmentGenerator_hhblits
: Local database search against PDB70 database.alignment.AlignmentGenerator_from_aln
: For if you already have an alignment ready, but want to make use ofhomelette
’s processing of templates and alignments.
Method 1: Querying RCSB and Realignment of template sequences with Clusta Omega
This class performs a three step process:
Template Identification: Query the RCSB using a sequence (interally, MMseq2 is used by RCSB) [1, 2] (
get_suggestion
)Then the sequences of identified templates are aligned locally using Clustal Omega [3, 4]. (
get_suggesion
)Finally, the template structures are downloaded and processed together with the alignment (
get_pdbs
)
Afterwards, the templates schould be ready for performing homology modelling.
For a practical demonstration, let’s find some templates for ARAF:
[2]:
gen = hm.alignment.AlignmentGenerator_pdb.from_fasta('data/alignments/ARAF.fa')
# gen = hm.alignment.AlignmentGenerator_pdb(
# sequence = 'GTVKVYLPNKQRTVVTVRDGMSVYDSLDKALKVRGLNQDCCVVYRLIKGRKTVTAWDTAIAPLDGEELIVEVL',
# target = 'ARAF')
There are two ways how AlignmentGenerator
can be initialized: either with a sequence, or from a fasta file. Both ways are shown above.
In the next step we use this sequence to generate an initial alignment:
[3]:
gen.get_suggestion()
Querying PDB...
Query successful, 16 found!
Retrieving sequences...
Sequences succefully retrieved!
Generating alignment...
Alignment generated!
Query successful.
17 sequences have been found.
As we can see from the output, we are querying the PDB and extracting potential templates. Then, an alignment is generated.
We can have a first look at the suggested templates as such:
[4]:
gen.show_suggestion()
[4]:
template | coverage | identity | |
---|---|---|---|
0 | 6XI7_2 | 100.0 | 60.27 |
1 | 6XGU_2 | 100.0 | 60.27 |
2 | 6XGV_2 | 100.0 | 60.27 |
3 | 1GUA_2 | 100.0 | 60.27 |
4 | 4G0N_2 | 100.0 | 60.27 |
5 | 4G3X_2 | 100.0 | 60.27 |
6 | 6VJJ_2 | 100.0 | 60.27 |
7 | 6XHA_2 | 100.0 | 60.27 |
8 | 6XHB_2 | 100.0 | 60.27 |
9 | 1C1Y_2 | 100.0 | 60.27 |
10 | 7JHP_2 | 100.0 | 60.27 |
11 | 3KUC_2 | 100.0 | 58.90 |
12 | 3KUD_2 | 100.0 | 58.90 |
13 | 3NY5_1 | 100.0 | 58.90 |
14 | 6NTD_2 | 100.0 | 53.42 |
15 | 6NTC_2 | 100.0 | 52.05 |
[5]:
gen.alignment.print_clustal(70)
ARAF -------------GTVKVYLPNKQRTVVTVRDGMSVYDSLDKALKVRGLNQDCCVVYRLI---KGRKTVT
6XI7_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6XGU_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6XGV_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
1GUA_2 --------PSKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
4G0N_2 -----------TSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
4G3X_2 ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6VJJ_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6XHA_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6XHB_2 ---------SKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
1C1Y_2 ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
7JHP_2 ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
3KUC_2 --------PSKTSNTIRVFLPNKQRTVVRVRNGMSLHDCLMKKLKVRGLQPECCAVFRLLHEHKGKKARL
3KUD_2 --------PSKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKKLKVRGLQPECCAVFRLLHEHKGKKARL
3NY5_1 MGHHHHHHSHMQKPIVRVFLPNKQRTVVPARCGVTVRDSLKKALMMRGLIPECCAVYRIQ---DGEKKPI
6NTD_2 --------GAMDSNTIRVLLPNHERTVVKVRNGMSLHDSLMKALKRHGLQPESSAVFRLLHEHKGKKARL
6NTC_2 --------GAMDSNTIRVLLPNQEWTVVKVRNGMSLHDSLMKALKRHGLQPESSAVFRLLHEHKGKKARL
ARAF AWDTAIAPLDGEELIVEVL---------------------------------------------------
6XI7_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XGU_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XGV_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
1GUA_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
4G0N_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
4G3X_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
6VJJ_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
6XHA_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XHB_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
1C1Y_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
7JHP_2 DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
3KUC_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
3KUD_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
3NY5_1 GWDTDISWLTGEELHVEVLENVPLTTHNF-----------------------------------------
6NTD_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
6NTC_2 DWNTDAASLIGEELQVDFL---------------------------------------------------
ARAF ------
6XI7_2 MCVDWS
6XGU_2 MCVDWS
6XGV_2 MCVDWS
1GUA_2 ------
4G0N_2 ------
4G3X_2 ------
6VJJ_2 ------
6XHA_2 MCVDWS
6XHB_2 MCVDWS
1C1Y_2 ------
7JHP_2 MCVDW-
3KUC_2 ------
3KUD_2 ------
3NY5_1 ------
6NTD_2 ------
6NTC_2 ------
After potentially filtering out some sequences, we can proceed with the next step: downloading the structures for our templates, comparing the sequences of the templates with the residues present in the template structure and make adjustments to both the structure and the alignment if necessary.
[6]:
gen.get_pdbs()
Guessing template naming format...
Template naming format guessed: polymer_entity!
Checking template dir...
Template dir found!
Processing templates:
6XI7 downloading from PDB...
6XI7 downloaded!
6XI7_B: Chain extracted!
6XI7_B: Alignment updated!
6XI7_B: PDB processed!
6XGU downloading from PDB...
6XGU downloaded!
6XGU_B: Chain extracted!
6XGU_B: Alignment updated!
6XGU_B: PDB processed!
6XGV downloading from PDB...
6XGV downloaded!
6XGV_B: Chain extracted!
6XGV_B: Alignment updated!
6XGV_B: PDB processed!
1GUA downloading from PDB...
1GUA downloaded!
1GUA_B: Chain extracted!
1GUA_B: Alignment updated!
1GUA_B: PDB processed!
4G0N downloading from PDB...
4G0N downloaded!
4G0N_B: Chain extracted!
4G0N_B: Alignment updated!
4G0N_B: PDB processed!
4G3X downloading from PDB...
4G3X downloaded!
4G3X_B: Chain extracted!
4G3X_B: Alignment updated!
4G3X_B: PDB processed!
6VJJ downloading from PDB...
6VJJ downloaded!
6VJJ_B: Chain extracted!
6VJJ_B: Alignment updated!
6VJJ_B: PDB processed!
6XHA downloading from PDB...
6XHA downloaded!
6XHA_B: Chain extracted!
6XHA_B: Alignment updated!
6XHA_B: PDB processed!
6XHB downloading from PDB...
6XHB downloaded!
6XHB_B: Chain extracted!
6XHB_B: Alignment updated!
6XHB_B: PDB processed!
1C1Y downloading from PDB...
1C1Y downloaded!
1C1Y_B: Chain extracted!
1C1Y_B: Alignment updated!
1C1Y_B: PDB processed!
7JHP downloading from PDB...
7JHP downloaded!
7JHP_C: Chain extracted!
7JHP_C: Alignment updated!
7JHP_C: PDB processed!
3KUC downloading from PDB...
3KUC downloaded!
3KUC_B: Chain extracted!
3KUC_B: Alignment updated!
3KUC_B: PDB processed!
3KUD downloading from PDB...
3KUD downloaded!
3KUD_B: Chain extracted!
3KUD_B: Alignment updated!
3KUD_B: PDB processed!
3NY5 downloading from PDB...
3NY5 downloaded!
3NY5_A: Chain extracted!
3NY5_A: Alignment updated!
3NY5_A: PDB processed!
3NY5_B: Chain extracted!
3NY5_B: Alignment updated!
3NY5_B: PDB processed!
3NY5_C: Chain extracted!
3NY5_C: Alignment updated!
3NY5_C: PDB processed!
3NY5_D: Chain extracted!
3NY5_D: Alignment updated!
3NY5_D: PDB processed!
6NTD downloading from PDB...
6NTD downloaded!
6NTD_B: Chain extracted!
6NTD_B: Alignment updated!
6NTD_B: PDB processed!
6NTC downloading from PDB...
6NTC downloaded!
6NTC_B: Chain extracted!
6NTC_B: Alignment updated!
6NTC_B: PDB processed!
Finishing... All templates successfully
downloaded and processed!
Templates can be found in
"/home/templates".
get_pdbs
will check all chains of a template and download those with the correct sequence.
[7]:
gen.alignment.print_clustal(70)
ARAF -------------GTVKVYLPNKQRTVVTVRDGMSVYDSLDKALKVRGLNQDCCVVYRLI---KGRKTVT
6XI7_B -------------NTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLH----KKARL
6XGU_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPE-CAVFRLLHEHKGKKARL
6XGV_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPE-CAVFRLLHEHKGKKARL
1GUA_B -------------NTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
4G0N_B -----------TSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
4G3X_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6VJJ_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
6XHA_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPE-CAVFRLLHEHKGKKARL
6XHB_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPE-CAVFRLLHEHKGKKARL
1C1Y_B ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
7JHP_C ------------SNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLL-----KKARL
3KUC_B -------------NTIRVFLPNKQRTVVRVRNGMSLHDCLMKKLKVRGLQPECCAVFRLLHEHKGKKARL
3KUD_B -------------NTIRVFLPNKQRTVVNVRNGMSLHDCLMKKLKVRGLQPECCAVFRLLHEHKGKKARL
3NY5_A ---------H-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ------KKPI
3NY5_B --------SH-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ-----EKKPI
3NY5_C -----------QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ------KKPI
3NY5_D ---------H-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRI-------KKPI
6NTD_B ------------SNTIRVLLPNHERTVVKVRNGMSLHDSLMKALKRHGLQPESSAVF-----------RL
6NTC_B -------------NTIRVLLPNQEWTVVKV---MSLHDSLMKALKRHGLQPESSAVF---------KARL
ARAF AWDTAIAPLDGEELIVEVL---------------------------------------------------
6XI7_B DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XGU_B DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XGV_B DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
1GUA_B DWNTDAASLIGEELQVDFL---------------------------------------------------
4G0N_B DWNTDAASLIGEELQVDFL---------------------------------------------------
4G3X_B DWNTDAASLIGEELQVDFL---------------------------------------------------
6VJJ_B DWNTDAASLIGEELQVDFL---------------------------------------------------
6XHA_B DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
6XHB_B DWNTDAASLIGEELQVDFLDHVPLTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
1C1Y_B DWNTDAASLIGEELQVDFL---------------------------------------------------
7JHP_C DWNTDAASLIGEELQVDFLDH--LTTHNFARKTFLKLAFCDICQKFLLNGFRCQTCGYKFHEHCSTKVPT
3KUC_B DWNTDAASLIGEELQVDFL---------------------------------------------------
3KUD_B DWNTDAASLIGEELQVDFL---------------------------------------------------
3NY5_A GWDTDISWLTGEELHVEVLENVPLT---------------------------------------------
3NY5_B GWDTDISWLTGEELHVEVLENVPLTTH-------------------------------------------
3NY5_C GWDTDISWLTGEELHVEVLENVPLTTH-------------------------------------------
3NY5_D GWDTDISWLTGEELHVEVLENVPL----------------------------------------------
6NTD_B DWNTDAASLIGEELQVD-----------------------------------------------------
6NTC_B DWNTDAASLIGEELQVDF----------------------------------------------------
ARAF ------
6XI7_B MCV---
6XGU_B MCVDWS
6XGV_B MCVDWS
1GUA_B ------
4G0N_B ------
4G3X_B ------
6VJJ_B ------
6XHA_B MCVDWS
6XHB_B MCVDWS
1C1Y_B ------
7JHP_C MCVDW-
3KUC_B ------
3KUD_B ------
3NY5_A ------
3NY5_B ------
3NY5_C ------
3NY5_D ------
6NTD_B ------
6NTC_B ------
Now we can directly use these template for homology modelling:
[8]:
# initialize task
t = gen.initialize_task(task_name = 'Tutorial8', overwrite = True)
# create a model per template
templates = [temp for temp in t.alignment.sequences.keys() if temp != 'ARAF']
for template in templates:
t.execute_routine(
tag = f'test_{template}',
routine = hm.routines.Routine_automodel_default,
templates = [template],
template_location = './templates/'
)
[9]:
# inspect models
t.models
[9]:
[<homelette.organization.Model at 0x7f341a60f580>,
<homelette.organization.Model at 0x7f341a50fc40>,
<homelette.organization.Model at 0x7f341a50f1f0>,
<homelette.organization.Model at 0x7f341a50f2b0>,
<homelette.organization.Model at 0x7f341a512190>,
<homelette.organization.Model at 0x7f34357f4c40>,
<homelette.organization.Model at 0x7f341a5c9eb0>,
<homelette.organization.Model at 0x7f341a5a6eb0>,
<homelette.organization.Model at 0x7f341a5c6b50>,
<homelette.organization.Model at 0x7f341a5c6df0>,
<homelette.organization.Model at 0x7f341a5d4640>,
<homelette.organization.Model at 0x7f341a5d4dc0>,
<homelette.organization.Model at 0x7f341a5d4d60>,
<homelette.organization.Model at 0x7f341a5aeee0>,
<homelette.organization.Model at 0x7f341a5c68b0>,
<homelette.organization.Model at 0x7f344c022400>,
<homelette.organization.Model at 0x7f341a5c6d00>,
<homelette.organization.Model at 0x7f341a5b0d90>,
<homelette.organization.Model at 0x7f341a5b0eb0>]
Method 2: HHSuite
This class is build on the hhblits
query function of the HHSuite3 [5].
This has the same interface as AlignmentGenerator_pdb
, except some different settings for the alignment generation with get_pdbs
.
It should also be noted that technically, this approach does not generate a multiple sequence alignment, but rather a combined alignment of lots of pairwise alignments of query to template. These pairwise alignments are combined on the common sequence they are all aligned to.
(This code is commented out since it requires big databases to run, which are not part of the docker container.)
[10]:
# gen = hm.alignment.AlignmentGenerator_hhblits.from_fasta('data/alignments/ARAF.fa')
# gen.get_suggestion(database_dir='/home/philipp/Downloads/hhsuite_dbs/')
# gen.get_pdbs()
# gen.show_suggestion()
# t = gen.initialize_task()
Method 3: Using pre-computed alignments
If you already have an alignment computed, but want to make use of get_pdbs
in order to download the templates and process the alignment and the template structures, there is also the possibility to load your alignment into an AlignmentGenerator
object:
[11]:
# initialize an alignment generator from a pre-computed alignemnt
gen = hm.alignment.AlignmentGenerator_from_aln(
alignment_file = 'data/alignments/unprocessed.fasta_aln',
target = 'ARAF')
gen.show_suggestion()
gen.alignment.print_clustal(70)
gen.get_pdbs()
gen.alignment.print_clustal(70)
ARAF -------------GTVKVYLPNKQRTVVTVRDGMSVYDSLDKALKVRGLNQDCCVVYRLI---KGRKTVT
3NY5 MGHHHHHHSHMQKPIVRVFLPNKQRTVVPARCGVTVRDSLKKALMMRGLIPECCAVYRIQ---DGEKKPI
4G0N -----------TSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
ARAF AWDTAIAPLDGEELIVEVL----------
3NY5 GWDTDISWLTGEELHVEVLENVPLTTHNF
4G0N DWNTDAASLIGEELQVDFL----------
Guessing template naming format...
Template naming format guessed: entry!
Checking template dir...
Template dir found!
Processing templates:
3NY5 downloading from PDB...
3NY5 downloaded!
3NY5_A: Chain extracted!
3NY5_A: Alignment updated!
3NY5_A: PDB processed!
3NY5_B: Chain extracted!
3NY5_B: Alignment updated!
3NY5_B: PDB processed!
3NY5_C: Chain extracted!
3NY5_C: Alignment updated!
3NY5_C: PDB processed!
3NY5_D: Chain extracted!
3NY5_D: Alignment updated!
3NY5_D: PDB processed!
4G0N downloading from PDB...
4G0N downloaded!
4G0N_B: Chain extracted!
4G0N_B: Alignment updated!
4G0N_B: PDB processed!
Finishing... All templates successfully
downloaded and processed!
Templates can be found in
"./templates/".
ARAF -------------GTVKVYLPNKQRTVVTVRDGMSVYDSLDKALKVRGLNQDCCVVYRLI---KGRKTVT
3NY5_A ---------H-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ------KKPI
3NY5_B --------SH-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ-----EKKPI
3NY5_C -----------QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRIQ------KKPI
3NY5_D ---------H-QKPIVRVFLPNKQRTVVPARCGVTVRDSLKKAL--RGLIPECCAVYRI-------KKPI
4G0N_B -----------TSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARL
ARAF AWDTAIAPLDGEELIVEVL----------
3NY5_A GWDTDISWLTGEELHVEVLENVPLT----
3NY5_B GWDTDISWLTGEELHVEVLENVPLTTH--
3NY5_C GWDTDISWLTGEELHVEVLENVPLTTH--
3NY5_D GWDTDISWLTGEELHVEVLENVPL-----
4G0N_B DWNTDAASLIGEELQVDFL----------
Again, for every template structure, homelette
is finding which chains fit to the sequence and then extract all of them.
Of course, if your alignment and template(s) are already processed, it is perfectly fine to use the Alignment
class directly as we have done in the previous tutorials.
Implementing own methods
While not discussed in Tutorial 4, AlignmentGenerator
object are also building blocks in the homelette
framework and custom versions can be implemented. All AlignmentGenerator
children classes so far inherit from the AlignmentGenerator
abstract base class, which contains some useful functionality for writing your own alignment generations, in particular the get_pdbs
function.
Further Reading
Congratulation on finishing the tutorial about alignment generation in homelette
.
Please note that there are other tutorials, which will teach you more about how to use homelette
.
Tutorial 1: Learn about the basics of
homelette
.Tutorial 2: Learn more about already implemented routines for homology modelling.
Tutorial 3: Learn about the evaluation metrics available with
homelette
.Tutorial 4: Learn about extending
homelette
’s functionality by defining your own modelling routines and evaluation metrics.Tutorial 5: Learn about how to use parallelization in order to generate and evaluate models more efficiently.
Tutorial 6: Learn about modelling protein complexes.
Tutorial 7: Learn about assembling custom pipelines.
References
[1] Rose, Y., Duarte, J. M., Lowe, R., Segura, J., Bi, C., Bhikadiya, C., Chen, L., Rose, A. S., Bittrich, S., Burley, S. K., & Westbrook, J. D. (2021). RCSB Protein Data Bank: Architectural Advances Towards Integrated Searching and Efficient Access to Macromolecular Structure Data from the PDB Archive. Journal of Molecular Biology, 433(11), 166704. https://doi.org/10.1016/J.JMB.2020.11.003
[2] Steinegger, M., & Söding, J. (2017). MMseqs2 enables sensitive protein sequence searching for the analysis of massive data sets. Nature Biotechnology 2017 35:11, 35(11), 1026–1028. https://doi.org/10.1038/nbt.3988
[3] Sievers, F., Wilm, A., Dineen, D., Gibson, T. J., Karplus, K., Li, W., Lopez, R., McWilliam, H., Remmert, M., Söding, J., Thompson, J. D., & Higgins, D. G. (2011). Fast, scalable generation of high-quality protein multiple sequence alignments using Clustal Omega. Molecular Systems Biology, 7(1), 539. https://doi.org/10.1038/MSB.2011.75
[4] Sievers, F., & Higgins, D. G. (2018). Clustal Omega for making accurate alignments of many protein sequences. Protein Science, 27(1), 135–145. https://doi.org/10.1002/PRO.3290
[5] Steinegger, M., Meier, M., Mirdita, M., Vöhringer, H., Haunsberger, S. J., & Söding, J. (2019). HH-suite3 for fast remote homology detection and deep protein annotation. BMC Bioinformatics, 20(1), 1–15. https://doi.org/10.1186/S12859-019-3019-7/FIGURES/7
Session Info
[12]:
# session info
import session_info
session_info.show(html = False, dependencies = True)
-----
homelette 1.3
pandas 0.25.3
session_info 1.0.0
-----
PIL 7.0.0
altmod NA
anyio NA
attr 19.3.0
babel 2.9.1
backcall 0.2.0
certifi 2021.10.08
chardet 3.0.4
charset_normalizer 2.0.8
cycler 0.10.0
cython_runtime NA
dateutil 2.7.3
debugpy 1.5.1
decorator 4.4.2
entrypoints 0.3
idna 3.3
importlib_resources NA
ipykernel 6.5.1
ipython_genutils 0.2.0
jedi 0.18.1
jinja2 3.0.3
json5 NA
jsonschema 4.2.1
jupyter_server 1.12.1
jupyterlab_server 2.8.2
kiwisolver 1.0.1
markupsafe 2.0.1
matplotlib 3.1.2
modeller 10.1
mpl_toolkits NA
nbclassic NA
nbformat 5.1.3
numpy 1.17.4
ost 2.2.0
packaging 20.3
parso 0.8.2
pexpect 4.8.0
pickleshare 0.7.5
pkg_resources NA
prometheus_client NA
promod3 3.2.0
prompt_toolkit 3.0.23
ptyprocess 0.7.0
pvectorc NA
pydev_ipython NA
pydevconsole NA
pydevd 2.6.0
pydevd_concurrency_analyser NA
pydevd_file_utils NA
pydevd_plugins NA
pydevd_tracing NA
pygments 2.10.0
pyparsing 2.4.6
pyrsistent NA
pytz 2019.3
qmean NA
requests 2.26.0
send2trash NA
sitecustomize NA
six 1.14.0
sniffio 1.2.0
storemagic NA
swig_runtime_data4 NA
terminado 0.12.1
tornado 6.1
traitlets 5.1.1
urllib3 1.26.7
wcwidth NA
websocket 1.2.1
zipp NA
zmq 22.3.0
-----
IPython 7.30.0
jupyter_client 7.1.0
jupyter_core 4.9.1
jupyterlab 3.2.4
notebook 6.4.6
-----
Python 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0]
Linux-4.15.0-162-generic-x86_64-with-glibc2.29
-----
Session information updated at 2021-11-29 19:49