답변:
일부 패키지는 다른 패키지의 소스 코드에서 사용할 수 있습니다. PyMol은 그 중 하나이며 VMD의 소스에도 액세스 할 수 있습니다.
1990 년대 VMD의 리본 알고리즘을 구현했습니다. 첫 번째 단계는 구조 결정입니다-아미노산은 어디에 있습니까? 어느 체인에 연결되어 있습니까? C- 알파 원자는 어디에 있습니까?
카일이 말했듯이 다음은 스플라인입니다. VMD는 C- 알파를 제어점으로하여 Catmull-Rom 스플라인을 사용합니다. 이것은 3 차 스플라인이며 스플라인은 C- 알파를 통과합니다. 수학을 풀면 자유 매개 변수가 하나 있는데, 이는 제어점 주위에서 스플라인이 얼마나 딱딱한 지에 해당합니다. 나는 심미적으로 즐거운 것을 찾을 때까지 몇 가지 가치를 시도했습니다.
C- 알파가 충분하지 않은 끝을 처리하는 방법에는 약간의 어려움이 있습니다. 나는 다른 요점을 얻기 위해 외삽했다.
그것은 길을 제공합니다. 경로를 따라 원형 돌출이 튜브를 제공합니다. 단면 반경을 변경하여 타원을 줄 수 있으며 약간의 작업으로 리본을 정의 할 수 있습니다.
문제는 리본이 알파 나선과 정렬되도록 올바른 표준을 찾는 것입니다. 나는 다양한 것을 시도하고 포기하고 Raster3D 구현을 살펴보고 그것을 사용할 수있는 권한을 얻은 다음 VMD에 추가했습니다. 이전 벡터 규범과 C- 알파 트레이스로 정의 된 현재 규범의 누적 합입니다. 나는 그것이 어떻게 다시 작동하는지 소스를 봐야 할 것이다. 흥미롭게도 Raster3D 작성자 인 Ethan Merritt는 FRODO에서 코드를 가져 왔으므로 오랜 역사를 가지고 있다고 지적했습니다.
VMD에는 이제 "NewRibbons"가 있으며, 이는 내 시간 후에 구현되었습니다. 어떻게 작동하는지 모르겠습니다.
알파 나선을 만드는 가장 쉬운 방법은 처음부터 마지막까지의 선을 그리는 것입니다. 선을 따라 원을 돌출 시키면 원통이 있습니다. 나선에 선형 적으로 가장 잘 맞을 수는 있지만 짧은 나선에 문제가 있다고 생각합니다. Kyle이 제안한 방식을 포함하여 부드러운 굽힘을 허용하는 더 영리한 방법이 있습니다.
베타 가닥은 쉽습니다. 각 측면마다 하나씩 두 개의 제어 경로가 있습니다. 이들은 스트랜드 경로와 법선을 정의합니다. 70도 비틀어 야 할 때 스트랜드가 290도 비 틀리지 않지만 다루기가 어렵지 않도록 비틀기에 약간 조심해야합니다.
언급하지 않은 어려운 부분은 알파 나선과 베타 가닥이 어디에 있는지 감지하는 방법입니다. 일부 PDB 레코드에는 그 내용이 포함되어 있지만 전부는 아닙니다. 이를 위해 타사 도구 인 STRIDE를 펀칭하고 사용했습니다. 워렌은 자신의 알고리즘을 구현했습니다. Roger Sayle은 자신의 Raster3D 용 DSSP 버전을 구현했습니다.
내가 찌르겠습니다.
단백질 만화 (리본이라고도 함) 표현은 세 가지 유형의 단백질 이차 구조에 해당하는 세 부분으로 구성됩니다.
리본 다이어그램 의 위키 백과 페이지 에는 단백질 구조를 보여주기위한 이러한 유형의 시각화의 출처에 대한 추가 정보가 있습니다.