PyMOL Quickie - Making Mutations

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ก.ย. 2024
  • MAKING MUTATIONS - github.com/PyM...
    00:00:24 Introduction - mutations and amino acids
    00:04:11 Introduction - rotamers and states
    00:06:26 GUI - making mutations
    00:12:41 GUI - remove clashes with sculpting
    00:15:17 Command line - making mutations
    00:17:55 Command line - remove clashes with sculpting
    00:22:03 BASH scripting
    to run the bash commands, replace '(out into)' below, with the right-hand facing arrow key (which are not allowed in the comments!)
    MUTATIONS USING THE GUI
    00:06:26
    rein
    load molecule
    Crystal Structure of heterodimeric L. donovani topoisomerase I
    fetch 2B9S
    clean and present
    remove ! polymer
    util.cbc
    show sticks, sc. + n. CA + r. PRO & n. N
    as sticks, polymer.nucleic
    bg_color white
    util.cnc
    orient
    #### Make mutation
    Wizard :: Mutagenesis :: Protein
    Find and pick your residue
    can also use sequence view
    states unmutated
    use state controls to cycle through rotamers
    pick new residue
    [No Mutation] button has choices
    states mutated
    use state controls to cycle through rotamers
    00:12:41 # then
    Build :: Sculpting :: Sculpting
    Build :: Sculpting :: Activate
    allow to relax
    Build :: Sculpting :: Deactivate
    Build :: Sculpting :: Sculpting
    also
    Wizard :: Mutagenesis :: nucleic acids
    00:15:17
    MUTATIONS USING THE COMMAND LINE
    rein
    load molecule
    Crystal Structure of heterodimeric L. donovani topoisomerase I
    fetch 2B9S
    clean and present
    remove ! polymer
    util.cbc
    show sticks, sc. + n. CA + r. PRO & n. N
    as sticks, polymer.nucleic
    bg_color white
    util.cnc
    orient
    Turn on the wizard
    cmd.wizard("mutagenesis")
    cmd.do("refresh_wizard")
    mutate chain A residue 352 to PHE
    cmd.get_wizard().set_mode("HIS")
    cmd.get_wizard().do_select("A/150/")
    Apply mutation
    cmd.get_wizard().apply()
    00:17:55
    relax structure
    select mutant, A/150/
    select new, br. mutant gap 10
    flag fix, br. mutant gap 10
    sculpt_activate 2B9S
    sculpt_iterate all, cycles=2000
    sculpt_deactivate 2B9S
    00:22:03
    MUTATIONS USING A BASH SCRIPT
    prepare you input file in pymol
    select br. polymer.protein within 5 of polymer.nucleic
    save interact.pdb, sele
    prepare you input file in bash
    grep ' CA ' interact.pdb | cut -c 22-27 | sed 's/ /\//g;s/\/\//\//g' (out into) res.list
    This is the BASH script
    for YYY in $(cat res.list | head -5) ; do
    for XXX in ALA LYS ; do
    chain=$(echo $YYY | cut -c 1)
    num=$(echo $YYY | cut c 3 | rev | cut c 2 | rev)
    echo -en "
    mutating chain $chain res $num to $XXX"
    echo "
    rein
    fetch 2B9S, async=0
    remove ! polymer
    cmd.wizard(\"mutagenesis\")
    cmd.do(\"refresh_wizard\")
    lets mutate residue 104 to GLN
    cmd.get_wizard().set_mode(\"$XXX\")
    cmd.get_wizard().do_select(\"$YYY\")
    Apply the mutation
    cmd.get_wizard().apply()
    cmd.get_wizard().done()
    select mutant, $YYY
    flag fix, br. mutant gap 10
    sculpt_activate 2B9S
    sculpt_iterate all, cycles=1000
    sculpt_deactivate 2B9S
    save $XXX-$chain-$num.pdb, all
    " (out into) mutate.pml
    pymol -qc mutate.pml 1 (out into) /dev/null
    while [ ! -f $XXX-$chain-$num.pdb ] ; do
    sleep 1
    done
    done
    done

ความคิดเห็น • 21

  • @whycook1674
    @whycook1674 3 ปีที่แล้ว +3

    Dear Dr. Ross, thank you so much for the videos! I really am a big fan of your channel! Plus, would you mind teaching finding and installing plugins of PyMOL? e.g. the "undo" plugin, I could not find it on GitHub anymore...Many thanks!

    • @pymolross
      @pymolross  3 ปีที่แล้ว +1

      Thanks for your comment! I'll have a look into that. I know that the undo feature (ctrl-z) is a little better in version 2.4 than the previous 1.x versions, still not great though.

  • @prachiagnihotri9468
    @prachiagnihotri9468 3 ปีที่แล้ว

    Hi Dr.Ross this is really a video with good information. i need to know can we replace any amino acid in pymol with any other modified group? like some of the amino acids can undergo modification posttranscriptionally?

    • @pymolross
      @pymolross  3 ปีที่แล้ว +1

      Hi Prachi, You can use the 'builder' button in the top right section of the GUI.
      Make sure you are on the 'chemical' tab of the builder window,
      Make sure you in editing mode at the bottom right of the GUI
      Click on the atom you wish to replace, and then click the atom type you want on the builder menu.
      If you wish to 'add' rather then 'replace' then you should first replace the first atom with itself, this will add hydrogens, you can then replace the hydrogens.
      To make phosphoserine . . .
      click on the side chain oxygen and select 'O' from the builder menu, this will add hydrogens
      click on the hydrogen, click on the 'P=O3' button on the GUI.
      remember you can rotate bonds by clicking on them if hold CTRL and right click, while in editing mode.
      For more complicated modifications, it might be worth finding a pdb with the correct structure and substituting it in.

  • @wenchaozhang6524
    @wenchaozhang6524 3 ปีที่แล้ว

    Hi Dr Ross, thank you for sharing such great and useful videos!
    I would like to ask you a question about the pymol, I coloured the protein with different colours by B-factor, while how can I create a colour bar for the meaning of different colours? Thank you in advance!

    • @pymolross
      @pymolross  3 ปีที่แล้ว +1

      Hi Wenchao, thanks for the comment.
      You can use the following commands,
      spectrum b, blue_white_red, minimum=20, maximum=50
      as cartoon
      cartoon putty
      ramp_new colorbar, none, [50, 35, 20], [red, white, blue]
      I found them here
      pymolwiki.org/index.php/Advanced_Coloring

  • @fikaayusafitri3503
    @fikaayusafitri3503 3 ปีที่แล้ว

    Hello Dr. Ross,
    Thank you for sharing. All of your video is helping me, however, I wonder about the structure I have. I tried to follow your instruction, however, the order is changed. Could you please help me how to protect the nucliec acid that I want to add? and do you think we can insert some nucleotide in between origin design?
    Thank you
    Regards
    Fika

    • @pymolross
      @pymolross  3 ปีที่แล้ว +1

      Hi Fika,
      Maybe I can help, you will have to describe the problem a little more. Is the file from the pdb? could you share the pdb code?
      What is it you are attempting to do? insert/substitute a nucleotide?
      'the order is changed' - the order of what is changed?
      'help me to protect the nucleic acid' - what do you mean by 'protect'
      Yes inserting/substituting a nucleotide should be simple enough. Although the model will need refinement in more advanced software afterwards to make it more realistic.
      Thanks
      James

    • @fikaayusafitri3503
      @fikaayusafitri3503 3 ปีที่แล้ว

      @@pymolross Hello Dr. Ross,
      Thank you for your answer. Yes, I have the pdb file. The code is 5cmx. In this model, there are thrombin and the RE31. From this model, I only need RE31, consisting of 31 nucleotides that form a secondary structure called G-quadruplex. I have done designing with the addition of some new nucleotides, the length before additional nucleotides was 31 and after additional is 45. The characteristic result from some analysis showed that my new RE31 still keeps the secondary structure.
      My purpose for my final experiment is to docking to Immune cell receptors using my new RE31. Because my lack knowledge how to create the G-quadruplex smiles format, I think it will be easy for me to add some nucleotides within the bases using other software. So, I started to try another method and I found your channel. I think I can add some nucleotides within the sequences using builder and sculpt in pymol. However, after 3 bases, the position was not correct and also it showed the error ExecutiveRMSPairs-Error: Atom counts between selection sets don't match (5 != 10).
      Do you mind if I send you an email so I can send you a video of what I mean?
      Thank you
      Best regards
      Fika

    • @pymolross
      @pymolross  3 ปีที่แล้ว +2

      My suspicion is that pymol will not be able to help with this problem. Pymol is good for visualising proteins and building toy models, however, if you are looking for atomically accurate models for docking you would be better off using more sophisticated software.
      A good program to convert between molecular file formats is open babel (pdb to smiles)
      openbabel.org/wiki/Main_Page
      here is a link to their smiles page
      openbabel.org/docs/current/FileFormats/SMILES_format.html
      However with smiles, you will lose the 3D structure of your quadruplex which will be important, and most docking programs will struggle generating the 3D structures from smiles only. I would suggest looking for software which can build a quadruplex from scratch (or homology) with your intended sequence.
      you can try
      alcazar.science.uu.nl/dna/dna.php
      en.wikipedia.org/wiki/List_of_RNA_structure_prediction_software
      openwetware.org/wiki/Wikiomics:RNA_secondary_structure_prediction
      HADDOCK apparently has a DNA modelling function, but i have not used it.
      wenmr.science.uu.nl/
      Thanks
      James

    • @fikaayusafitri3503
      @fikaayusafitri3503 3 ปีที่แล้ว

      @@pymolross Hello again Dr. Ross.
      Thank you very much. I will learn all of the link you shared. Thank you
      Regards
      Fika

  • @maryamsediqi3726
    @maryamsediqi3726 ปีที่แล้ว

    Hi Dr.Ross, many thanks for such useful video, I have a question, I would like to map the variants to the 3d structure, imean here you did map only 2 amino acids, could you please guide me how can I do mapping for the all sequences?

    • @pymolross
      @pymolross  ปีที่แล้ว +1

      Hi @maryamsediqi3726
      Yes you can do that in PyMOL, but it would be best to use a piece of software such as Rosetta which will minimise the sidechains after mutation (as you are making so many). Or indeed to use software which generates a homology model. However, to do this in pymol you can use the following commands
      load file.pdb
      wizard mutagenesis
      cmd.get_wizard().do_select('i. 1')
      cmd.get_wizard().set_mode('ALA')
      cmd.get_wizard().apply()
      refresh_wizard
      cmd.get_wizard().do_select('i. 2')
      cmd.get_wizard().set_mode('CYS')
      cmd.get_wizard().apply()
      refresh_wizard
      . . . .
      save mutant.pdb
      quit
      Where the 1 and the 2 are the residue numbers (if multi-chained, then you need to specify the chain too) and ALA and CYS are the chosen residues for those positions. You can use a little simple scripting to generate a file with the specified mutations you desire.
      I hope that helps!

    • @maryamsediqi3726
      @maryamsediqi3726 ปีที่แล้ว

      @@pymolross Many thanks for your help. I tried and it works, but I want to mutate all the structures to the variants, for example, for chain A I want to apply all variants of about 700 residues, in this case, if I do one by one it takes so much time, could you please guide me is there any way to apply all at once? I do really appreciate your help and guide.

    • @pymolross
      @pymolross  ปีที่แล้ว

      Hi @maryamsediqi3726
      So you have 700 different sequences with homology to the template? You can do this in pymol with the mutagenesis commands I've given you above, but it would require you to write a program in python or bash etc to iterate the mutation command as desired. However, pymol is not good at making insertions and deletions, so the variant sequences would need have the exact same number of residues, which is unlikely.
      In this case, I would advise some homology modelling, you might find this webpage helpful www.pdg.cnb.uam.es/cursos/bcn05/Structures/3D_Practicals/P_homology/index.html
      Swiss-model and the Robetta server are well regarded.
      You could try the very modern AlphaFold2 colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb
      If I have misinterpreted the problem, please correct me.

    • @maryamsediqi3726
      @maryamsediqi3726 ปีที่แล้ว

      @@pymolross many thanks for your reply. I am sorry for my poor description as I am new in working with pymol. Mainly, I would like to map the variants to its 3D structure. For example, I recognised the variants (only single nucleotide variants) in BRCA1 by using clinvar, and now I want to map these all amino acid sequences (the mutated) to its 3D structure in pymol. Thus, doing these all one by one of course takes time, and you are right I must write a program in python or bash. I tried to use the commands which you gave me as bellow:
      import cmd
      import sys
      pdb, selection, mutant = sys.argv[chainA.pdb]
      cmd.wizard("mutagenesis")
      cmd.fetch(pdb)
      cmd.refresh_wizard()
      cmd.get_wizard().do_select('i. 1')
      cmd.get_wizard().set_mode('ALA')
      cmd.get_wizard().apply()
      refresh_wizard
      cmd.get_wizard().do_select('i. 2')
      cmd.get_wizard().set_mode('CYS')
      cmd.get_wizard().apply()
      refresh_wizard
      cmd.save("%s_m.pdb" % pdb, pdb)
      but the problem is how can I add all the variants amino acids at once and then visualise by using pymol. Is there any code? please let me know if I described not clearly. Thanks in advance

    • @pymolross
      @pymolross  ปีที่แล้ว

      When you say 'add all the variants amino acids at once' I don't understand what you mean. If there is one position with multiple different mutations, do you intent to superimpose multiple amino acids in the same place, in a single model? or generate multiple models, one model per variant? The first option would be difficult to rationalise and the second option would give you many models to look through.
      What format is the sequence data, and how many sequences do you have? Or is the data simply mutations at position (for example A34S) presumably you are working with a fasta file. In either case you need to make loop in which iterates over the position number and the mutant amino acid, and writes the commands with the new variables.
      In bash, i would do something such as (providing only one mutation per position, and all mutations applied to one model)
      ***example input file
      A34S
      D36T
      . . .
      ***script example
      echo "load file.pdb
      wizard mutagenesis" > mutate.pml
      for mut in $(cat input.file) ; do
      # get position
      position=$(echo $mut | cut -c 2- | rev | cut -c 2- | rev)
      # get amino acid
      amino=$(echo $mut | rev | cut -c 1 | rev)
      # convert to 3 letter
      if [ $amino = A ] ; then
      amino=ALA
      elif [ $amino = C ] ; then
      amino=CYS
      *** you can finish this off ***
      fi
      #print out mutation commands
      echo "cmd.get_wizard().do_select('i. $position')
      cmd.get_wizard().set_mode('$amino')
      cmd.get_wizard().apply()
      refresh_wizard" >> mutate.pml
      done
      echo "save mutant.pdb" >> mutate.pml
      pymol -qc mutate.pml

  • @sumayaibrahime3666
    @sumayaibrahime3666 ปีที่แล้ว

    hi Dr Ross, if I want to do frameshift mutation how can I do it in pymol

    • @pymolross
      @pymolross  ปีที่แล้ว

      Hi @sumayaibrahime3666
      A frameshift inserts or deletes a nucleotide, this causes the codon reading frame to be shifted +1 or -1 respectively. Thus from the point of the frame shift, the sequence of amino acids changes until the end of the open reading frame or until a rescue frame shift mutation restores the original codon sequencing.
      In Pymol, there is no function to apply a frameshift, as the nucleotide sequence is absent from pymol, which only has the amino acid sequence. So first, you will need to use another piece of software to find out how the frameshift changes the amino acid sequence. You can use programs such as 'bioedit', 'jalview' or 'benchling' (plenty of others too!) to paste and edit the nucleotide sequence, and then view the amino acid sequence once you have applied the frame shift.
      Once you have the new amino acid sequence you can apply those mutations as seen in the video. If you have many mutations to make you might want to consider coding a solution in python or another programming language.
      Just remember to look out for '*' in the amino acid sequence which refers to a stop codon, resulting in a truncated protein.
      Hope that helps.

    • @sumayaibrahime3666
      @sumayaibrahime3666 ปีที่แล้ว

      @@pymolross this was very helpful, thank you