Spaces:
Running
Running
Commit
·
0d8e357
1
Parent(s):
13cf7a1
Update code/alphafold_featureVector.py
Browse files
code/alphafold_featureVector.py
CHANGED
@@ -44,6 +44,53 @@ import requests
|
|
44 |
from Bio.PDB import PDBParser, PPBuilder
|
45 |
from io import StringIO
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
def convert_non_standard_amino_acids(sequence):
|
49 |
"""
|
@@ -629,7 +676,6 @@ def alphafold(input_set, mode, impute):
|
|
629 |
atomSequence = convert_non_standard_amino_acids(atomSequence)
|
630 |
alignments = aligner.align(pdbSequence, atomSequence)
|
631 |
alignments = (list(alignments))
|
632 |
-
|
633 |
#if get_alignments_3D(uniprotID, mod, pdb_path, pdbSequence, 'nan', 'nan', 'nan', mode, Path(path_to_output_files / '3D_alignment'),
|
634 |
# 'gzip') != None:
|
635 |
|
@@ -640,8 +686,13 @@ def alphafold(input_set, mode, impute):
|
|
640 |
|
641 |
|
642 |
alignments = alignments[0]
|
643 |
-
|
644 |
-
|
|
|
|
|
|
|
|
|
|
|
645 |
if (mutationPositionOnPDB != 'nan'):
|
646 |
if (int(mutationPositionOnPDB) <= 1400):
|
647 |
try:
|
|
|
44 |
from Bio.PDB import PDBParser, PPBuilder
|
45 |
from io import StringIO
|
46 |
|
47 |
+
import glob
|
48 |
+
import ssbio.utils
|
49 |
+
import subprocess
|
50 |
+
import ssbio
|
51 |
+
import os.path as op
|
52 |
+
from add_3Dalignment import *
|
53 |
+
import os
|
54 |
+
from pathlib import Path
|
55 |
+
import gzip
|
56 |
+
import shutil
|
57 |
+
import streamlit as st
|
58 |
+
|
59 |
+
|
60 |
+
def run_freesasa(infile, outfile, include_hetatms=True, outdir=None, force_rerun=False, file_type = 'gzip'):
|
61 |
+
if not outdir:
|
62 |
+
outdir = ''
|
63 |
+
outfile = op.join(outdir, outfile)
|
64 |
+
if file_type == 'pdb':
|
65 |
+
if ssbio.utils.force_rerun(flag=force_rerun, outfile=outfile):
|
66 |
+
if include_hetatms:
|
67 |
+
shell_command = 'freesasa --format=rsa --hetatm {} -o {}'.format(infile, outfile)
|
68 |
+
else:
|
69 |
+
shell_command = 'freesasa --format=rsa {} -o {}'.format(infile, outfile)
|
70 |
+
command = subprocess.Popen(shell_command,
|
71 |
+
stdout=subprocess.PIPE,
|
72 |
+
stderr=subprocess.PIPE,
|
73 |
+
shell=True)
|
74 |
+
out, err = command.communicate()
|
75 |
+
elif file_type == 'gzip':
|
76 |
+
with gzip.open(infile, 'rb') as f_in:
|
77 |
+
with open('file_temp.pdb', 'wb') as f_out:
|
78 |
+
shutil.copyfileobj(f_in, f_out)
|
79 |
+
|
80 |
+
infile = 'file_temp.pdb'
|
81 |
+
|
82 |
+
if ssbio.utils.force_rerun(flag=force_rerun, outfile=outfile):
|
83 |
+
if include_hetatms:
|
84 |
+
shell_command = 'freesasa --format=rsa --hetatm {} -o {}'.format(infile, outfile)
|
85 |
+
else:
|
86 |
+
shell_command = 'freesasa --format=rsa {} -o {}'.format(infile, outfile)
|
87 |
+
command = subprocess.Popen(shell_command,
|
88 |
+
stdout=subprocess.PIPE,
|
89 |
+
stderr=subprocess.PIPE,
|
90 |
+
shell=True)
|
91 |
+
out, err = command.communicate()
|
92 |
+
return outfile
|
93 |
+
|
94 |
|
95 |
def convert_non_standard_amino_acids(sequence):
|
96 |
"""
|
|
|
676 |
atomSequence = convert_non_standard_amino_acids(atomSequence)
|
677 |
alignments = aligner.align(pdbSequence, atomSequence)
|
678 |
alignments = (list(alignments))
|
|
|
679 |
#if get_alignments_3D(uniprotID, mod, pdb_path, pdbSequence, 'nan', 'nan', 'nan', mode, Path(path_to_output_files / '3D_alignment'),
|
680 |
# 'gzip') != None:
|
681 |
|
|
|
686 |
|
687 |
|
688 |
alignments = alignments[0]
|
689 |
+
if ID not in existing_free_sasa:
|
690 |
+
fullID = f'AF-{ID}-F{model_num}-{file_str }.pdb.gz'
|
691 |
+
run_freesasa(Path(alphafold_path / fullID),
|
692 |
+
Path(path_to_output_files / f'freesasa_files/{fullID}.txt'), include_hetatms=True,
|
693 |
+
outdir=None, force_rerun=False)
|
694 |
+
st.write('Calulated')
|
695 |
+
#calculate_freesasa(uniprotID, mod, existing_free_sasa, alphafold_path, path_to_output_files)
|
696 |
if (mutationPositionOnPDB != 'nan'):
|
697 |
if (int(mutationPositionOnPDB) <= 1400):
|
698 |
try:
|