How to extract matrix values of a different column that correspond to a value in another column?

1 view (last 30 days)
In the matrix uxcLYS generated, I want to extract only the x,y,z column values that corresponds to 'CB','CG','CD','CE' in the atom name column. How to do it?
uxc = getpdb('1UXC');
No_of_residues = uxc.Sequence.NumOfResidues
No_of_residues = 65
isLYS = ({uxc.Model.Atom.resName} == "LYS");
uxcLYS = uxc.Model.Atom(isLYS)
uxcLYS = 1×110 struct array with fields:
AtomSerNo AtomName altLoc resName chainID resSeq iCode X Y Z occupancy tempFactor segID element charge AtomNameStruct

Accepted Answer

Venkat Siddarth
Venkat Siddarth on 6 Mar 2023
Hi @Masha,
I understand that you are trying to extract specifc columns corresponding to few atom names in the above structure.This can be achieved as follows
%Given Code
uxc = getpdb('1UXC');
No_of_residues = uxc.Sequence.NumOfResidues
No_of_residues = 65
isLYS = ({uxc.Model.Atom.resName} == "LYS");
uxcLYS = uxc.Model.Atom(isLYS)
uxcLYS = 1×110 struct array with fields:
AtomSerNo AtomName altLoc resName chainID resSeq iCode X Y Z occupancy tempFactor segID element charge AtomNameStruct
Since uxc is a structure element,for easy access we can convert this to table as follows:
%Structure to Table
req=struct2table(uxc.Model.Atom)
req = 808×16 table
AtomSerNo AtomName altLoc resName chainID resSeq iCode X Y Z occupancy tempFactor segID element charge AtomNameStruct _________ ________ __________ _______ _______ ______ __________ ______ ______ ______ _________ __________ ________ _______ ______ ______________ 1 {'N' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -7.262 10.686 -0.473 1 2.83 {' '} {'N'} {' '} 1×1 struct 2 {'CA' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.548 9.453 -0.028 1 2.26 {' '} {'C'} {' '} 1×1 struct 3 {'C' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.298 8.511 -1.22 1 2.42 {' '} {'C'} {' '} 1×1 struct 4 {'O' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.779 7.395 -1.261 1 2.69 {' '} {'O'} {' '} 1×1 struct 5 {'CB' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -7.347 8.762 1.091 1 2.33 {' '} {'C'} {' '} 1×1 struct 6 {'CG' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.383 8.091 2.075 1 2.33 {' '} {'C'} {' '} 1×1 struct 7 {'SD' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -5.381 9.359 2.895 1 2.65 {' '} {'S'} {' '} 1×1 struct 8 {'CE' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -3.746 8.634 2.608 1 2.5 {' '} {'C'} {' '} 1×1 struct 9 {'H1' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -8.171 10.434 -0.913 1 0 {' '} {'H'} {' '} 1×1 struct 10 {'H2' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -7.432 11.306 0.344 1 0 {' '} {'H'} {' '} 1×1 struct 11 {'H3' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.673 11.197 -1.162 1 0 {' '} {'H'} {' '} 1×1 struct 12 {'HA' } {0×0 char} {'MET'} {'A'} 1 {0×0 char} -5.586 9.751 0.363 1 0 {' '} {'H'} {' '} 1×1 struct 13 {'HB2'} {0×0 char} {'MET'} {'A'} 1 {0×0 char} -7.941 9.495 1.616 1 0 {' '} {'H'} {' '} 1×1 struct 14 {'HB3'} {0×0 char} {'MET'} {'A'} 1 {0×0 char} -7.997 8.012 0.665 1 0 {' '} {'H'} {' '} 1×1 struct 15 {'HG2'} {0×0 char} {'MET'} {'A'} 1 {0×0 char} -6.951 7.545 2.815 1 0 {' '} {'H'} {' '} 1×1 struct 16 {'HG3'} {0×0 char} {'MET'} {'A'} 1 {0×0 char} -5.74 7.407 1.542 1 0 {' '} {'H'} {' '} 1×1 struct
After this we will apply the required constraints;
%converting the column AtomName to string array;
atomName=string(req.AtomName);
%Applying the constraints
ans=req(ismember(atomName,[ "CB","CG","CD","CE"]),["AtomName" "X" "Y" "Z"])
ans = 97×4 table
AtomName X Y Z ________ ______ ______ ______ {'CB'} -7.347 8.762 1.091 {'CG'} -6.383 8.091 2.075 {'CE'} -3.746 8.634 2.608 {'CB'} -4.843 9.06 -4.571 {'CG'} -6.097 9.739 -5.137 {'CD'} -5.812 11.22 -5.419 {'CE'} -6.311 11.618 -6.815 {'CB'} -2.636 4.331 -5.025 {'CG'} -2.609 2.871 -4.565 {'CB'} 0.29 8.746 -5.728 {'CG'} 1.741 8.974 -6.172 {'CB'} -1.262 10.625 -1.019 {'CG'} -2.558 9.887 -0.698 {'CD'} -3.654 10.922 -0.415 {'CB'} -1.304 5.303 0.301 {'CB'} 3.205 5.265 -2.502
I hope this resolves your query.
Thanks,
Venkat Siddarth V

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!