jertubiana/ScanNet

amino acid frame triplet side chain

Closed this issue · 3 comments

Hello, thanks for open sourcing your project.

I was wondering if I train ScanNet from scratch, should I modify line 170 to use Nitrogen atom of the current amino acid atom_coordinate instead of the previous aimo acid i.e. atom_coordinates[l-1]. I noticed in your comment that it was due to a previou issue. So just to confirm if I retrain the network, my understanding is I should replace line 169-175 line 182-188, is that correct?

#'''
#TO CHANGE FOR NEXT NETWORK ITERATION... I used the wrong nitrogen when I rewrote the function...
if l>0:
if (0 in atom_id) & (1 in atom_id) & (17 in atom_ids[l-1]): # If C,N,Calpha are here, place virtual CoM
sidechain_CoM = 3 * atom_coordinate[atom_id.index(1)] - atom_coordinates[l-1][atom_ids[l-1].index(17)] - \
atom_coordinate[atom_id.index(0)]
else:
if verbose:
print('Warning, pathological amino acid missing side chain and backbone', l)
sidechain_CoM = atom_coordinate[-1]
else:
if verbose:
print('Warning, pathological amino acid missing side chain and backbone', l)
sidechain_CoM = atom_coordinate[-1]
#'''
# if (0 in atom_id) & (1 in atom_id) & (17 in atom_id): # If C,N,Calpha are here, place virtual CoM
# sidechain_CoM = 3 * atom_coordinate[atom_id.index(1)] - atom_coordinate[atom_id.index(17)] - \
# atom_coordinate[atom_id.index(0)]
# else:
# if verbose:
# print('Warning, pathological amino acid missing side chain and backbone', l)
# sidechain_CoM = atom_coordinate[-1]

Hi,
Thanks for your interest in our research.
Regarding protein_frames.py, please leave as it is, the change was already made.
However, if you retrain, you can comment l427 of file preprocessing/protein_chemistry.py and uncomment l428.
This is a bug regarding histidine parsing that I only noticed recently.
Best regards,
Jérôme

Thansk for your reply! Though I am still confused about line 169-171 in protein_frames.py

For examle, a Glycine (residue index l), as in line 169-171 you are calculating its virtual side-chain CoM using the glycine's C and Cα atom coordinates and the Nitrogen atom of its preceding residue (l-1) if I understand correctly. In your paper, the side chain CoM was defined using , C, N atom vector coordinates of the residue. So, why using nitrogen from preceding residue atom_coordinates[l-1][atom_ids[l-1].index(17)] rather than the glycine its own nitrogen atom e.g. atom_coordinate[atom.index(17)]?