Como cortar algum texto de vários arquivos, substitua-os por nomes e um pouco mais?

0

Isso pode ser um grande favor, já que eu quero que você me ajude a escrever um roteiro completo, mas agradeço a ajuda de todos e garanto que suas respostas ajudam a melhorar a ciência:)

Se você não tem tempo, por favor nomeie os comandos que eu preciso para aprender seus manuais (mas eu ainda precisarei saber como relacionar cada comando ao outro)

Estou trabalhando em algumas proteínas, e cada uma delas tem um nome único (como o 2DMS). Essas proteínas têm um arquivo de texto descrevendo suas propriedades. Eu preciso cortar esse texto para cada proteína, cortar da primeira linha começando com "ATOM" até o final da linha começando de "TER", e digitar um "'" no final. Em seguida, renomeie o arquivo de saída para o ID da proteína (2DMS). Aqui você pode ver uma amostra: (Normalmente, o nome do arquivo é apenas o ID da proteína, neste caso = 2DMS.)

link

você pode abri-lo como um arquivo de texto.

Em seguida, o script precisa modificar o seguinte e renomeá-lo para CURL_2DMS (o 2DMS é substituído por cada ID de proteína):

curl LINK/idock/jobs -d '&description=2DMS&[email protected]&center_x=150&center_y=109&center_z=22&size_x=18&size_y=17&size_z=15&mwt_lb=390&mwt_ub=420&lgp_lb=1&lgp_ub=3&nrb_lb=4&nrb_ub=6&hbd_lb=2&hbd_ub=4&hba_lb=4&hba_ub=6&chg_lb=0&chg_ub=0&ads_lb=0&ads_ub=10&pds_lb=-40&pds_ub=0&psa_lb=60&psa_ub=80&receptor=ATOM      1  N   PRO A  19     148.930 114.148   5.178  1.00138.31           N  
ATOM      2  CA  PRO A  19     149.869 115.263   5.360  1.00138.99           C  
ATOM      3  C   PRO A  19     151.021 115.224   4.348  1.00144.31           C  
ATOM      4  O   PRO A  19     150.914 114.542   3.320  1.00144.78           O  
ATOM      5  CB  PRO A  19     150.357 115.076   6.800  1.00138.04           C  
ATOM      6  CG  PRO A  19     149.222 114.376   7.496  1.00140.40           C  
ATOM      7  CD  PRO A  19     148.354 113.704   6.460  1.00137.06           C  
TER    2743      GLN A 313                                                      
'

Como você pode ver, o curl tem estas 5 seqüências que precisam ser modificadas para cada proteína:

description= “protein ID”
center_x= “column 1”
center_y= “column 2”
center_z= “column 3”
receptor= “the protein_ID.txt which was produced in the first step”

As colunas 1,2,3 existem em um arquivo chamado coordinates.csv

Depois, preciso que o script execute cada arquivo CURL_proten_ID (suponho que cada trabalho no site demore três horas para ser concluído. Preciso que o script execute cada ondulação em um período de três horas). Em seguida, o script deve ir para [este link] [1] e pesquisar o protein_ID (como 2DMS ) e copiar a sequência de _id (neste exemplo: 567048e420d3a8813691c534 ). Em seguida, ele deve baixar um arquivo CSV com este link com wget (ou alternativas) e substituir o _id :

websitelink/567048e420d3a8813691c534 (_id) /log.csv.gz

exemplo:

{"0":244,"1":1656,"2":1072,"3":2039,"4":2642,"5":2750,"6":83,"7":286,"8":371,"9":487,"_id":"567048e420d3a8813691c534","description":"2DMS","ligands":11630,"scheduled":10,"submitted":"2015-12-15T17:07:48.729Z","done":"2015-12-15T17:20:53.143Z"},

Então eu preciso que o script renomeie o arquivo baixado para 2DMS( ID)_log.csv.gz

Então eu agradeço pelo seu tempo que você colocou neste projeto:)

** Aqui está o algoritmo para o trabalho:

  1. Abra o arquivo de proteína (PDB)

  2. Exclua todas as linhas acima da primeira linha contendo "ATOM"

  3. Exclua todas as linhas inferiores à última linha que contém “TER”

  4. Renomeie o arquivo para PDB.txt

  5. Crie um novo arquivo CURL.txt

  6. Renomeie para PDB_curl.txt

  7. Copie o seguinte em PDB_curl.txt:

    curl LINK/idock/jobs -d '&description=PDB&[email protected]&center_x=xcenter&center_y=ycenter&center_z=zcenter&size_x=18&size_y=17&size_z=15&mwt_lb=390&mwt_ub=420&lgp_lb=1&lgp_ub=3&nrb_lb=4&nrb_ub=6&hbd_lb=2&hbd_ub=4&hba_lb=4&hba_ub=6&chg_lb=0&chg_ub=0&ads_lb=0&ads_ub=10&pds_lb=-40&pds_ub=0&psa_lb=60&psa_ub=80&receptor=RECEPTOR_DISCRIPTION'
    
  8. Altere o “PDB” para o ID da proteína (PDB)

  9. Copie o PDB.txt e substitua o "RECEPTOR_DISCRIPTION"

  10. Abrir coordenadas.csv

  11. para cada PDB, copie o coulmn1 e substitua “xcenter” por ele

  12. para cada PDB, copie o coulmn2 e substitua o “ycenter” por ele

  13. para cada PDB, copie o coulmn3 e substitua o "zcenter" por ele

  14. feche e salve PDB_CURL.txt

  15. Executar PDB_CURL

  16. Aguarde 3 horas

  17. Pesquise através deste link: {link / idock / jobs} para o PDB

  18. Copie a próxima string depois de "_id" nessa linha

  19. Substitua o "_id" neste link pelo texto copiado: link / idock / jobs / _id /log.csv.gz

  20. Faça o download do link via wget

  21. Renomeie o arquivo baixado para PDB_log.csv.gz

  22. Repita os comandos superiores até que cada PDB_log.csv.gz seja baixado

  23. Se houver um erro, pule esse trabalho completamente e copie esse PDB para “errors.log” **

por Farbod Shahabi 17.12.2015 / 09:24

1 resposta

2
#!/bin/bash
tail -n $(($(wc -l pdb2dms.ent|cut -d' ' -f 1)-1)) pdb2dms.ent|head -n $(($(wc -l pdb2dms.ent|cut -d' ' -f 1)-1)) pdb2dms.ent | grep -v "ATOM" | grep -v "TER" #2 and 3
mv pdb2dms.ent PDB.txt # 4
touch curl.txt #5
mv curl.txt PDB_curl.txt #6

for i in coordinates.csv
do
  curl LINK/idock/jobs -d "&description=PDB&[email protected]&center_x='cat $i|cut -d',' -f 1'&center_y='cat $i|cut -d',' -f 2'&center_z='cat $i|cut -d',' -f 3'&size_x=18&size_y=17&size_z=15&mwt_lb=390&mwt_ub=420&lgp_lb=1&lgp_ub=3&nrb_lb=4&nrb_ub=6&hbd_lb=2&hbd_ub=4&hba_lb=4&hba_ub=6&chg_lb=0&chg_ub=0&ads_lb=0&ads_ub=10&pds_lb=-40&pds_ub=0&psa_lb=60&psa_ub=80&receptor='cat ./*_curl.txt'" > PDB_curl.txt
done #11,12,13,15
sleep 3h #16
wget -O PDB_log.csv.gz $(wget -O - link/idock/jobs|grep 'PDB'|sed \_id\'wget -O - link/idock/jobs/_id /log.csv.gz|echo'\) #17,18,19,20,21

Não tenho certeza sobre # 22 e # 23
Por favor, verifique se os comandos fazem o que devem, pois eu tive algum problema para entender o objetivo. man <command> pode ser usado ou uma pesquisa no google.

    
por Wilhelm Erasmus 17.12.2015 / 18:24