这可能是一个很大的忙,因为我希望你帮助我编写一个完整的脚本,但我感谢任何帮助我的人,并向你保证你的答案有助于科学进步:)
如果您没有时间,请只列出我需要学习其手册的命令(但我仍然需要知道如何将每个命令与其他命令关联)
我正在研究一些蛋白质,它们每个都有一个独特的名称(如 2DMS)。这些蛋白质有一个文本文件描述它们的属性。我需要剪切每个蛋白质的文本,从以“ATOM”开头的第一行剪切到以“TER”开头的行末,并在末尾输入“ ' ”。然后将输出文件重命名为蛋白质 ID(2DMS)。您可以在此处看到一个示例:(通常文件名只是蛋白质 ID,在本例中为 2DMS。)
http://www.rcsb.org/pdb/download/downloadFile.do?fileFormat=pdb&compression=NO&structureId=2DMS
您可以将其作为文本文件打开。
然后脚本需要修改以下内容,并将其重命名为CURL_2DMS(2DMS替换为每个蛋白质ID):
curl LINK/idock/jobs -d '&description=2DMS&[email protected]¢er_x=150¢er_y=109¢er_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
'
如你所见,curl 中有 5 个字符串需要针对每个蛋白质进行修改:
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”
列 1,2,3 存在于名为coordinates.csv
然后我需要脚本来运行每个CURL_proten_ID
文件(假设网站中的每个作业都需要 3 个小时才能完成,我需要脚本在 3 小时内运行每个 curl)。然后脚本应该转到 [此链接][1] 并搜索protein_ID
(如2DMS
)并复制字符串_id
(在此示例中为:567048e420d3a8813691c534
)。然后它应该使用此链接下载一个 CSV 文件wget
(或替代方案)并替换_id
:
websitelink/567048e420d3a8813691c534 (_id) /log.csv.gz
例子:
{"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"},
然后我需要脚本将下载的文件重命名为2DMS( ID)_log.csv.gz
那么我很感激您在这个项目上投入的时间:)
**这是该作业的算法:
打开蛋白质文件(PDB)
删除第一行以上包含“ATOM”的所有行
删除最后一行以下所有包含“TER”的行
将文件重命名为 PDB.txt
创建新的 CURL.txt 文件
将其重命名为 PDB_curl.txt
将以下内容复制到 PDB_curl.txt 中:
curl LINK/idock/jobs -d '&description=PDB&[email protected]¢er_x=xcenter¢er_y=ycenter¢er_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'
将“PDB”更改为蛋白质ID(PDB)
复制 PDB.txt 并替换“RECEPTOR_DISCRIPTION”
打开坐标.csv
对于每个 PDB,复制 coulmn1 并用它替换“xcenter”
对于每个 PDB,复制 coulmn2 并用它替换“ycenter”
对于每个 PDB,复制 coulmn3 并用它替换“zcenter”
关闭并保存 PDB_CURL.txt
运行 PDB_CURL
等待3小时
通过此链接搜索:{link/idock/jobs} 以查找 PDB
复制该行中“_id”后面的下一个字符串
用复制的文本替换此链接中的“_id”:link/idock/jobs/_id /log.csv.gz
通过 wget 下载链接
将下载的文件重命名为 PDB_log.csv.gz
重复上述命令,直到下载所有 PDB_log.csv.gz
如果出现错误,则完全跳过该作业并将该 PDB 复制到“errors.log”**
答案1
#!/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]¢er_x=`cat $i|cut -d',' -f 1`¢er_y=`cat $i|cut -d',' -f 2`¢er_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
不确定#22 和#23
请检查命令是否按预期执行,因为我在理解目标方面有些困难。man <command>
可以使用,或者谷歌搜索。