How to align mol1 mol2 in Python?

PyMOL: Juster molekyler og atomegenskaber

26/12/2022

Rating: 4.39 (5663 votes)

PyMOL er et kraftfuldt open-source visualiseringsværktøj, der bruges bredt inden for biokemi, molekylærbiologi og medicinsk kemi. Dets evne til at vise og analysere komplekse molekylære strukturer gør det uundværligt for forskere. En central funktion i PyMOL er manipulationen af molekylære strukturer, herunder justering af atomer og ændring af deres egenskaber. Dette dækker alt fra at placere molekyler korrekt i forhold til hinanden til at farvelægge specifikke atomer baseret på deres egenskaber. Lad os udforske de mest relevante PyMOL-kommandoer til at håndtere atomegenskaber og molekylær justering.

How to load atom properties in PyMOL?
If it is a '*', then all properties get loaded. If an empty string, then no properties get loaded. {default: use load_object_props_default setting} atom_props = argument specifies whether atom properties should be loaded into PyMOL. If it is a space-delimited list, then only these properties will get loaded.
Indholdsfortegnelse

Grundlæggende Molekylær Justering

Når du arbejder med molekylære strukturer, er det ofte nødvendigt at sammenligne dem eller placere dem i en bestemt orientering. PyMOL tilbyder flere kommandoer til dette formål:

  • align: Denne kommando udfører en sekvensjustering efterfulgt af en strukturel superposition. Den er særligt effektiv for proteiner med en vis grad af sekvenslighed (over 30% identitet). Den kan også bruges til at raffinere pasformen ved at afvise strukturelle outliers.
  • super: Bruges til at superponere to molekyler baseret på deres atomidentifikatorer. Den er generelt god til proteiner med lignende sekvenser.
  • cealign: En mere avanceret justeringsalgoritme baseret på CE (Combinatorial Extension). Den er især nyttig, når sekvensligheden er lavere, eller når man ønsker en mere robust justering.
  • fit: Denne kommando superponerer en model (mobil) på en anden (mål). Den bruger matchende atomer fra begge selektioner til at udføre justeringen.
  • alignto: En praktisk kommando, der justerer alle andre indlæste objekter til et specifikt mål (target) ved hjælp af en valgt justeringsmetode.

Eksempel på Justering

Lad os sige, du har to proteinstrukturer, 'mol1' og 'mol2', og du vil justere 'mol1' til 'mol2' baseret på alfa-kulstofatomerne (CA):

PyMOL> align mol1, mol2, /CA PyMOL> super mol1, mol2, /CA PyMOL> cealign mol1, mol2, /CA PyMOL> fit mol1, mol2, /CA 

Hvis du ønsker at justere alle indlæste objekter til 'mol1':

PyMOL> alignto mol1 

Manipulation af Atomegenskaber

Udover justering kan du også direkte ændre og manipulere egenskaberne for individuelle atomer eller grupper af atomer. Dette er afgørende for at tilpasse visualiseringen og analysere specifikke molekylære træk.

  • alter: En meget alsidig kommando, der ændrer atom-egenskaber ved hjælp af et udtryk. Du kan ændre alt fra atomnavne til ladninger og farver.
  • alter_state: Ligesom 'alter', men specifikt for at ændre koordinater og flag over en bestemt tilstand.
  • alphatoall: Udvider en given egenskab fra CA-atomer til alle atomer i den tilsvarende rest. Bruges ofte til at overføre B-faktorer eller andre egenskaber.
  • color: Ændrer farven på atomer eller objekter baseret på et navn eller en farvekode.
  • label: Bruges til at tilføje labels til atomer, f.eks. restnummer, atomnavn eller beregnede egenskaber.
  • flag: Sætter specifikke flag for atomer, som kan bruges til selektion eller yderligere manipulation.

Eksempler på Ændring af Egenskaber

Ændring af B-faktor for alle atomer til 10:

PyMOL> alter all, b=10 

Ændring af ladningen for et specifikt atom:

PyMOL> alter chain A and resi 50 and name CA, partial_charge=-0.5 

Farvelægning af alle oxygenatomer:

PyMOL> color red, elem O 

Tilføjelse af labels med restnummer og atomnavn:

PyMOL> label all, "%%s-%%s" %% (resn, resi) 

Specifikke Udfordringer: Små Molekylers Justering

Du nævnte en udfordring med at justere små molekyler, hvor PyMOL giver fejlen "ExecutiveAlign: mobile selection must derive from one object only". Dette skyldes typisk, at PyMOLs justeringskommandoer (som align og super) er designet til at fungere på atomer inden for et enkelt objekt eller en enkelt tilstand. Når du forsøger at justere to separate små molekyler, som måske er indlæst som separate objekter eller endda som forskellige tilstande inden for samme objekt, kan PyMOL have svært ved at identificere det entydige "mobile" objekt.

For at omgå dette problem kan du:

  1. Kombiner til et enkelt objekt: Inden du udfører justeringen, kan du kopiere eller samle de to molekyler i et nyt, enkelt objekt. Dette kan gøres med kommandoer som create eller copy.
  2. Brug 'pair_fit' eller 'super' med specifikke selektioner: Hvis molekylerne er strukturelt ens, kan du bruge `pair_fit` eller `super` med meget specifikke atomselektioner, der sikrer, at PyMOL kun arbejder med atomer fra et enkelt "mobil" objekt ad gangen.
  3. Python API: Den mest fleksible metode er at bruge PyMOLs Python API. Du kan skrive et lille Python-script, der henter de relevante atomer fra hvert molekyle, samler dem i en midlertidig selektion eller et objekt, og derefter udfører justeringen.

Eksempel med 'create' til at kombinere molekyler:

# Antag at dine to molekyler er kaldet 'ligand1' og 'ligand2' PyMOL> create combined_ligands, ligand1 + ligand2 PyMOL> align combined_ligands, combined_ligands, /* specificer selektion for at justere, f.eks. */ name C1+C2+C3, name C1+C2+C3 # Eller brug en mere specifik justering, hvis de er kendt at have samme topologi: PyMOL> super ligand1, ligand2 

Hvis dine ligander har ens atomer, men forskellige koordinater, og du vil justere den ene til den anden, kan du prøve at samle dem og så bruge 'super' eller 'align' på den kombinerede selektion, men med klare specifikationer for, hvilke atomer der skal matche:

# Antag at ligand1 og ligand2 har ens atomnavne og rækkefølge PyMOL> super ligand1, ligand2 

Hvis det ikke virker, kan du definere en specifik parring:

PyMOL> pair_fit ligand1///C1, ligand2///C1, ligand1///C2, ligand2///C2, ligand1///C3, ligand2///C3 

Avancerede Funktioner og Visualisering

Udover de grundlæggende justerings- og egenskabsmanipulationskommandoer tilbyder PyMOL en række avancerede funktioner:

  • distance, angle, dihedral: Bruges til at måle afstande, vinkler og dihedrale vinkler mellem atomer.
  • cartoon: Ændrer repræsentationen af sekundære strukturelementer (som alfa-helixer og beta-sheets).
  • show, hide, as: Kontrollerer synligheden og repræsentationen af molekylære elementer (f.eks. sfærer, bånd, pinde).
  • ray, draw: Bruges til at generere højkvalitetsbilleder af molekylerne.
  • zoom, center, orient: Justerer visningen for at passe til molekylets størrelse og orientering.
  • save, load, fetch: Håndterer indlæsning og lagring af molekylære filer og data fra internettet.

Tabellarisk Oversigt over Justeringskommandoer

KommandoBeskrivelseAnvendelse
alignSekvens- og strukturjusteringProteiner med >30% identitet
superStrukturjustering baseret på atomerGenerel brug, god til lignende strukturer
cealignCE-algoritme justeringLav sekvenslighed, robusthed
fitSuperponerer en model på en andenPasform baseret på matchende atomer
aligntoJusterer alle objekter til et målEnsartet orientering af datasæt
pair_fitJusterer specifikke atomparPræcis kontrol over parring

Ofte Stillede Spørgsmål (FAQ)

Q: Hvordan kan jeg se atomtyperne i PyMOL?
Du kan bruge kommandoen label med et udtryk, der henter elementtypen, f.eks.:
PyMOL> label all, elem

Q: Kan jeg justere kun en del af et molekyle?
Ja, brug selektionssyntaksen til at specificere den ønskede del. For eksempel:
PyMOL> align mol1, mol2, resi 10-50

Q: Hvordan gemmer jeg min PyMOL-session?
Brug kommandoen save filnavn.pse, hvor `.pse` er filtypen for PyMOL-sessionsfiler.

How to load atom properties in PyMOL?
If it is a '*', then all properties get loaded. If an empty string, then no properties get loaded. {default: use load_object_props_default setting} atom_props = argument specifies whether atom properties should be loaded into PyMOL. If it is a space-delimited list, then only these properties will get loaded.

Q: Hvad hvis mine ligander ikke har ens atomnavne?
I dette tilfælde skal du bruge `pair_fit` og eksplicit angive, hvilke atomer der skal matche, eller overveje at redigere filerne for at ensrette atomnavnene, hvis strukturen tillader det.

PyMOLs fleksibilitet gør det muligt at udføre utroligt detaljerede analyser og visualiseringer. Ved at mestre disse kommandoer kan du effektivt håndtere og forstå dine molekylære data.

Hvis du vil læse andre artikler, der ligner PyMOL: Juster molekyler og atomegenskaber, kan du besøge kategorien Software.

Go up