Difference between revisions of "TSD Homology modelling protocol"
(→6 A RMSD) |
(→Modeller) |
||
Line 12: | Line 12: | ||
Get all necessary files |
Get all necessary files |
||
<source lang="bash"> |
<source lang="bash"> |
||
+ | cd ../input/ |
||
+ | #HEXA sequence |
||
− | test |
||
+ | wget http://www.uniprot.org/uniprot/P06865.fasta |
||
+ | sed -ri 's/^>.+/>P06865/' P06865.fasta |
||
+ | #Reference structure |
||
+ | wget http://www.pdb.org/pdb/files/2GJX.pdb |
||
+ | |||
+ | #Templates |
||
+ | wget http://www.pdb.org/pdb/files/2GK1.pdb |
||
+ | wget http://www.pdb.org/pdb/files/3GH5.pdb |
||
+ | wget http://www.pdb.org/pdb/files/1O7A.pdb |
||
+ | </source> |
||
+ | |||
+ | Create the pairwise alignments, using Modeller internal methods |
||
+ | <source lang=python> |
||
+ | #!/usr/bin/env python |
||
+ | from modeller import * |
||
+ | |||
+ | OUT='../prediction/' |
||
+ | |||
+ | def makeAli(targetId, targetFile, templateId, templateFile, templateChain) : |
||
+ | env = environ() |
||
+ | aln = alignment(env) |
||
+ | mdl = model(env, file=templateFile, model_segment=('FIRST:'+templateChain, 'LAST:'+templateChain)) |
||
+ | aln.append_model(mdl, align_codes=templateId, atom_files=templateFile) |
||
+ | aln.append(file=targetFile, align_codes=targetId, alignment_format='FASTA') |
||
+ | aln.align2d() |
||
+ | aln.check() |
||
+ | aln.write(file=OUT+targetId+templateId+'-2d.ali', alignment_format='PIR') |
||
+ | aln.malign() |
||
+ | aln.check() |
||
+ | aln.write(file=OUT+targetId+templateId+'.ali', alignment_format='PIR') |
||
+ | return |
||
+ | |||
+ | makeAli('P06865','../input/P06865.fasta','2GK1', '../input/2GK1.pdb','A' ) |
||
+ | makeAli('P06865','../input/P06865.fasta','1O7A', '../input/1O7A.pdb','D' ) |
||
+ | makeAli('P06865','../input/P06865.fasta','3GH5', '../input/3GH5.pdb','A' ) |
||
+ | </source> |
||
+ | |||
+ | Call modeller on a single alignment file |
||
+ | <source lang="python"> |
||
+ | #!/usr/bin/env python |
||
+ | |||
+ | from modeller import * |
||
+ | from modeller.automodel import * |
||
+ | import os |
||
+ | import sys |
||
+ | |||
+ | ali = sys.argv[1] |
||
+ | strc = sys.argv[2] |
||
+ | wd = sys.argv[3] |
||
+ | |||
+ | os.chdir(wd) |
||
+ | |||
+ | env = environ() |
||
+ | |||
+ | a = automodel(env, |
||
+ | alnfile = ali, |
||
+ | knowns = strc, |
||
+ | sequence = 'P06865', |
||
+ | assess_methods=(assess.DOPE, assess.GA341)) |
||
+ | |||
+ | a.starting_model= 1 |
||
+ | a.ending_model = 1 |
||
+ | a.make() |
||
+ | </source> |
||
+ | |||
+ | Caller script for all modeller predictions |
||
+ | |||
+ | <source lang="python"> |
||
+ | #!/bin/bash |
||
+ | |||
+ | #Ugly hotfix so we can work in our own folders later on (who hardcodes filepaths AND doesn't allow output folders?!) |
||
+ | sed -i 's|X:../input|X:../../input|' ../prediction/*.ali |
||
+ | |||
+ | PDBS=( 2GK1 1O7A 3GH5 ) |
||
+ | |||
+ | for pdb in "${PDBS[@]}" #Gotta love bash syntax |
||
+ | do |
||
+ | echo "$pdb" |
||
+ | mkdir -p ../prediction/$pdb/ |
||
+ | mkdir -p ../prediction/${pdb}_2D/ |
||
+ | |||
+ | ./createModel.py ../P06865${pdb}.ali ${pdb} ../prediction/$pdb/ &> ../prediction/$pdb/log |
||
+ | ./createModel.py ../P06865${pdb}-2d.ali ${pdb} ../prediction/${pdb}_2D/ &> ../prediction/${pdb}_2D/log |
||
+ | |||
+ | done |
||
</source> |
</source> |
||
Revision as of 01:58, 2 June 2012
Back to results.
Template selection
HHpred and COMA were employed in order to complement the 3 sequence identity classes.
SWISS-MODEL
The modelling was performed with the webserver of SWISS-MODEL in automated mode and alignment mode.
iTasser
Modeller
Get all necessary files <source lang="bash"> cd ../input/
- HEXA sequence
wget http://www.uniprot.org/uniprot/P06865.fasta sed -ri 's/^>.+/>P06865/' P06865.fasta
- Reference structure
wget http://www.pdb.org/pdb/files/2GJX.pdb
- Templates
wget http://www.pdb.org/pdb/files/2GK1.pdb wget http://www.pdb.org/pdb/files/3GH5.pdb wget http://www.pdb.org/pdb/files/1O7A.pdb </source>
Create the pairwise alignments, using Modeller internal methods <source lang=python>
- !/usr/bin/env python
from modeller import *
OUT='../prediction/'
def makeAli(targetId, targetFile, templateId, templateFile, templateChain) :
env = environ() aln = alignment(env) mdl = model(env, file=templateFile, model_segment=('FIRST:'+templateChain, 'LAST:'+templateChain)) aln.append_model(mdl, align_codes=templateId, atom_files=templateFile) aln.append(file=targetFile, align_codes=targetId, alignment_format='FASTA') aln.align2d() aln.check() aln.write(file=OUT+targetId+templateId+'-2d.ali', alignment_format='PIR') aln.malign() aln.check() aln.write(file=OUT+targetId+templateId+'.ali', alignment_format='PIR') return
makeAli('P06865','../input/P06865.fasta','2GK1', '../input/2GK1.pdb','A' ) makeAli('P06865','../input/P06865.fasta','1O7A', '../input/1O7A.pdb','D' ) makeAli('P06865','../input/P06865.fasta','3GH5', '../input/3GH5.pdb','A' ) </source>
Call modeller on a single alignment file <source lang="python">
- !/usr/bin/env python
from modeller import * from modeller.automodel import * import os import sys
ali = sys.argv[1] strc = sys.argv[2] wd = sys.argv[3]
os.chdir(wd)
env = environ()
a = automodel(env,
alnfile = ali, knowns = strc, sequence = 'P06865', assess_methods=(assess.DOPE, assess.GA341))
a.starting_model= 1 a.ending_model = 1 a.make() </source>
Caller script for all modeller predictions
<source lang="python">
- !/bin/bash
- Ugly hotfix so we can work in our own folders later on (who hardcodes filepaths AND doesn't allow output folders?!)
sed -i 's|X:../input|X:../../input|' ../prediction/*.ali
PDBS=( 2GK1 1O7A 3GH5 )
for pdb in "${PDBS[@]}" #Gotta love bash syntax do
echo "$pdb" mkdir -p ../prediction/$pdb/ mkdir -p ../prediction/${pdb}_2D/
./createModel.py ../P06865${pdb}.ali ${pdb} ../prediction/$pdb/ &> ../prediction/$pdb/log ./createModel.py ../P06865${pdb}-2d.ali ${pdb} ../prediction/${pdb}_2D/ &> ../prediction/${pdb}_2D/log
done </source>
6Å RMSD using Pymol
- Load template and model
- For each select active site
- Expand selections by 6Å
- Extract selections into objects
- Align objects