Anticancer small protein targets

Primer de tot has d'anar a TCM Database@Taiwan on has de buscar cada taxinine i el taxol per poder baixarte el MOL2 una vegada fet això per porder baixarte cada CSV del taxol i de cada taxinine has de anar Swissdock el primer arxiu que et demana has d'anarte aquesta web Arxiu PDB has de buscar la teva proteina en el meu cas es la Bcl-xL i et donava el nombre de la teva proteina 1R2D on baixes el pdb que serà el primer arxiu que introduiràs al Swissdock. El segon arxiu que has de pujar es el MOL2 de cada un de les taxinines i del taxol on desprès et demana el teu correu que es on t'enviaran els resultats. Finalment quan es finalitzi el procediment t'enviaran l'enllaç on veuras la molecula i hauràs de selecionar de l'ultima columna elvalor en negatiu més gran de tota la columna, en fas una captura i et baixes el CSV i una mica més abaix tens per baixarte l'arxiu en Zip. En el meu cas m'ha tocat fer-ne la proteїna Bcl-xL que finalment es 1R2D, en el moment de fer-ne totes les taxinines en el swissdock n'he tingut un problema amb la taxinineH, però si sols en tens un que no et funciona no pasa res.

Error en la taxinineH:

Seguim amb el codig per poder pujar al GoogleColab (llenguatge: Python i R, també per treballar s'utilitza GPU i CPU) els CSV: Codig Grafics per poder borrar tots els valors en positiu i tots els que donen 0 has de pujar en el primer codig del GoogleColab (llenguatge: Python i R, també per treballar s'utilitza GPU i CPU) tots els arxius un per un per que es poduin modificar. Finalment per obtenir el grafic has d'anarte al segon codig del GoogleColab (llenguatge: Python i R, també per treballar s'utilitza GPU(targerta gràfica) i CPU) i pujar en ordre tots els arxius modificats anteriorment.

Imatges que has obtingut:

Imatges del Swissdock

TaxinineA

TaxinineB

TaxinineE

TaxinineJ

TaxinineK

TaxinineL

TaxinineM

Grafica definitiva:

En el meu cas amb la proteina Bcl-xL el resultat més alt de la gràfica es la de la taxinine B, ja que en aquesta proteina és normal que sigui més elevada per causa de com actua la proteina. La Bcl-xL actua com anti-apoptòtica evitant l'alliberament de continguts mitocondrials.

Altres gràfiques del GoogleColab:

Codigs

Abans de posar el codi expliquem que esta fet en google.colab on puc triar python o R i CPU O GPU en nootebook settings. La GPU és més util en deeplearning perque permet procesament paral·lel o simultani de codi i la CPU és la unitat de prosesament del computador i pot tenir deiversos nuclis pero és mes lenta en deepearning o visió per ordinador

Si vull descarregar al google-colab ho puc fer i es descarregara e format IPYNB que significa interactive python notebook. Aquest arxiu es pot obrir amb un editor Jupyter que es pot instalar en ordinador descsarregant Anaconda. Hi ha dos versions Jupyter: Jupyter Notebook i Jupyter Lab que es poden descarregar localment n el ordinador i tenen el mateix aspecte i funcionalitat que google colab amb la avantatge i inconvenient de utilitzar totes les capasitats del teu ordinador


   # 2. Upload deltaG_values.csv of every docking to generate a boxplot to obtain a summary table transposed data in csv and boxplot
   # Has de pujar els diferents arxius i penjar cancel quan acabis, posar els noms en català (en aquest exemple: Taxinina A, etc)
   # Després has d'escriure el codi PDB de la teva proteïna (en aquest exemple 4HFZ)
   # Els signes d'exclamació o "bang" en anglès (!) indiquen que s'executi com si estigués en un terminal o shell (CMD). Per exemple, !pwd (print working directory) serveix per a saber en quin directori estic treballant al moment (carpeta, arxiu, disc...) o !cd que vol dir change directory, !ls que vol dir que em fagi un llistat dins del directori on estigui... !ls -l vol dir que té el paràmetre "long", és a dir que no només em digui els arxius sinó que també em digui els permisos dels arxius, que poden ser r (read, llegible), w (write, escribible), x (executable) de forma que per exemple un arxiu dirà: "arxiu.csv rwxrw-r--". Això significa que el super usuari o administrador té tots els permisos (rwd), un usuari normal només podrà llegir i escriure (rw-) i un convidat només podrà llegir l'arxiu (r--). Per canviar permisos utilitzem la instrucció "chmod" que significa "change mode" i vol dir que per exemple un arxiu que no podíem llegir, aplicant aquesta instrucció ara podrem executar-lo, llegir i escriure. La lletra r té un valor 1, la w un valor 2 i la lletra x un valor 4. Quan escric "chmod 777" es transforma en "rwxrwxrwx", és a dir, tan siguis administrador, usuari o convidat tindràs tots els permisos (les tres primeres lletres són de l'administrador, les tres segones de l'usuari i les tres últimes del convidat). Si poso "chmod 543" (5=4+1=permís administrador, 4=4=permís usuari, 3=1+2=permís convidat) sortirà "r-x--xrw-", que vol dir que l'administrador podrà llegir i executar, l'usuari només executar i el convidat podrà llegir i escriure. !ls -a significa veure tots els arxius (all), i !ls -la buscarà tots els arxius, inclosos els ocults i mostrarà els seus permisos. "!mkdir" vol dir make directory amb el nom que posem a continuació, és a dir, "!mkdir noudirectori" crea un directori amb el nom "noudirectori". "!rm deltaG.csv" esborrarà l'arxiu "deltaG.csv", ja que "rm" vol dir remove. Es poden posar dues admiracions (!!) que el que farien es executar a la cel·la i mostrar la sortida.

   from google.colab import files
   import pandas as pd
   import matplotlib.pyplot as plthttps://neocities.org/site_files/text_editor?filename=Programaci%C3%B3%2Fdocking%2Findex.html#
   import io
   import numpy as np

   # Initialize an empty list to store DataFrame objects
   dfs = [] //data frames pandas 

   # Upload CSV files one by one
   print("Upload CSV files one by one. Press Cancel to stop uploading.")
   while True: 
    uploaded_files = files.upload() //estem accedint a un metode upload que perteneix a google.colab
    if len(uploaded_files) == 0:
        break
    for filename, contents in uploaded_files.items():
        # Read CSV file as DataFrame and append it to the list
        df = pd.read_csv(io.StringIO(contents.decode('utf-8')), header=None)
        # Add a column to identify the compound
        df['Compound'] = f'Compound {chr(ord("A") + len(dfs))}'
        dfs.append(df)

   # Concatenate DataFrames vertically
   combined_df = pd.concat(dfs, ignore_index=True)

   # Transpose the DataFrame so that rows become columns
   transposed_df = combined_df.set_index('Compound').T

  # Save the transposed DataFrame to a new CSV file
  transposed_csv_path = 'transposed_data.csv'
  transposed_df.to_csv(transposed_csv_path)

  # Prompt the user to enter real chemical names for each compound
  real_names_mapping = {}
  for i, df_name in enumerate(transposed_df.columns):
    real_name = input(f"Enter the real chemical name for {df_name}: ")
    real_names_mapping[df_name] = real_name

  # Prompt the user to enter the last word of the graph title
  graph_title_suffix = input("Enter the last word of the graph title: ").strip()

  # Create a customized boxplot for compounds
  plt.figure(figsize=(8, 6))

  # Set colors
  box_color = 'blue'
  median_color = 'orange'
  whisker_color = 'green'
  cap_color = 'purple'

  # Create a boxplot
  boxprops = dict(color=box_color)
  medianprops = dict(color=median_color)
  whiskerprops = dict(color=whisker_color)
  capprops = dict(color=cap_color)
  boxplot = transposed_df.boxplot(vert=False, return_type='dict', boxprops=boxprops, medianprops=medianprops, whiskerprops=whiskerprops, capprops=capprops)

  # Overlay individual data points
  for df_name in transposed_df.columns:
    y = np.random.normal(list(transposed_df.columns).index(df_name) + 1, 0.1, size=len(transposed_df[df_name]))
    plt.scatter(transposed_df[df_name], y, alpha=0.5, s=10)

  # Set ticks and labels
  plt.yticks(np.arange(1, len(transposed_df.columns) + 1), [real_names_mapping[col] for col in transposed_df.columns])

  plt.xlabel("Energia d'unió (kcal/mol)")
  plt.ylabel("Lligands")
  plt.title(f"Acoblament molecular amb proteïna PDB {graph_title_suffix}")
  plt.grid(True)
  plt.axvline(x=0, color='red', linestyle='--')  # Add line at 0 for reference
  plt.tight_layout()

  # Save the plot as an image file
  plot_image_path = 'boxplot.png'
  plt.savefig(plot_image_path)

  # Download the transposed CSV file and the plot image
  files.download(transposed_csv_path)
  files.download(plot_image_path)

  # Print paths to the saved files
  print("Transposed data saved to:", transposed_csv_path)
  print("Plot image saved to:", plot_image_path)