To force 6msm from the semi-open state to the true open state, we added some distance restraints (shown below) during modelling with Modeller. We also added alpha helix constraints (see constraints) near the extracellular opening.
We have a python script to generate models (modeller.py) with Modeller. Since there are some missing residues in the pdb file, we need to correct residue numbers in the model produced by Modeller (residue_Correction.py). To run these scripts we need to use another script (modellerAndResiCorrect.py). Put files (In.pdb, modeller.py, residue_correction.py, modellerAndResiCorrect.py) in the same folder, and run
python modellerAndResiCorrect.py
In the model with alpha helix and distance restraints, we found that there are some abnormal aromatics.
After removing abnormal residues, we generated a model with constraints and without abnormal residue.
Given CFTR open state models, semi-open state structure and closed state structure, we calculated the distance between residue pairs in different states. Then we use the distance information to find promising residue pairs that lock CFTR in a certain state. Here are the promising residue pairs lists (closed state vs. semi-open state and semi-open state vs. true open state).
rsr.add(forms.gaussian(feature=features.distance(at['CA:342:A'], at['CA:100:A']), mean=12.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:341:A'], at['CA:101:A']), mean=15.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:340:A'], at['CA:102:A']), mean=18.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:339:A'], at['CA:103:A']), mean=16.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:338:A'], at['CA:104:A']), mean=16.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:337:A'], at['CA:105:A']), mean=19.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:336:A'], at['CA:106:A']), mean=18.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:335:A'], at['CA:107:A']), mean=14.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(forms.gaussian(feature=features.distance(at['CA:334:A'], at['CA:108:A']), mean=14.0,
stdev=0.001, group=physical.xy_distance))
rsr.add(secondary_structure.alpha(a.residue_range('100:A', '108:A')))
rsr.add(secondary_structure.alpha(a.residue_range('334:A', '342:A')))
closed state vs. semi-open state.
semi-open state vs. true open state.