すぐに利用可能な値を取得するために処理する必要があるいくつかの.pdbファイルがあります。私はすべてのコマンドを一緒に試してみるためにbashスクリプトを作っています。bashスクリプトがフリーズしています
このスクリプトについての私の具体的な質問は2つです:私は./myscript.bashを入力/入力して、Ubuntuの上で、コマンドラインでbashでそれを実行しようと、それが後に
私のスクリプトが凍結されます目的のファイルをフォルダに出力しません。このフリーズアップの原因となる可能性のあるスクリプトの間違いは何ですか?最後のコマンドで
、
grep 'model*' $file >> $file"-confscore".txt #command to keep only the 1-5 lines from each dir I want to keep that contain this full format " model1 -5.00 0.21+-0.05 19.9+-1.8 404 0.003 " then >> combinedcscore.txt #Then reformat it to just "$dir model1 -5.00" >> newcombcscore.txt
私はbashで、このコマンドを記述するのか分かりません。最初に表示されるgrepは、任意のモデル*テキストを含む行を$ file ___。txtというファイルに出力します。私はgrepの下の#d行に含まれている特定の形式でこれを必要とします。私は使用を考えています:
for files in $dirs; do awk -F':' ' { print $dir model* firstvalueidk? }' >> newcombcscore.txt
私のawkの使用は正しいですか?
ここで参照するための完全なスクリプトは次のとおりです。
#! /usr/bin/env bash
#Step 0 - Set up variables & navigate to app. directory
set GETLOCATION = "~/Desktop/DCompartment/RolandoHT_Scripts/Perl_Scripts"
set GETNAME = "get_right_pdb_format.pl"
set SSLOCATION = "~/Desktop/DCompartment/RolandoHT_Scripts/Perl_Scripts"
set SSNAME = "get_ss_dssp_itasser.pl"
set PROTALOCATION = "~/Desktop/protAlign-master/"
set dirs = ~/Videos/Proteins/*
#Step 1 - Process PDB for readily available values
for dir in $dirs; do
rm `cscore|model*.pdb|seq.fasta`
done
for dir in $dirs; do
for file in *.pdb; do
perl $GETLOCATION/$GETNAME $file
dssp -i $file"-fix" -o $file.dssp
perl $SSLOCATION/$SSNAME $file.dssp $file"-out"
done
for file in $dirs/*.dssp; do
grep 'ACCESSIBLE SURFACE OF PROTEIN' $file >> $file"-SASA".txt
done
for file in $dirs/*.txt; do
echo "$file `cat $file`" >> $dir-combinedSASAs.txt
done
done
#Step 2 - Set up tool
for dir in $dirs; do
./$PROTALOCATION/initialize.sh
source $PROTALOCATION/bin/activate
done
#Step 3 - Start analyzing files
for dir in $dirs; do
for file in *.pdb; do
./$PROTALOCATION/program_name.py $dir $dir/native.pdb $dir-SPAR
done
done
for file in $dirs/data; do
set filerep = native-*.txt
grep 'TM-score' $filerep >> combinedreports.txt
awk 'FNR%2' combinedreports.txt > newcombinedrep.txt
done
for dir in $dirs; do
for file in cscore; do
grep 'model*' $file >> $file"-confscore".txt
#command to keep only the 1-5 lines from each dir I want to keep that contain this full format " model1 -5.00 0.21+-0.05 19.9+-1.8 404 0.003 " then >> combinedcscore.txt
#Then reformat it to just "$dir model1 -5.00" >> newcombcscore.txt
done
done
見てみてください:bashでhttp://www.shellcheck.net/ – Cyrus
'set'は(t)はcshの中set''として動作しません。 – choroba
[\ [shellcheck \]](http://shellcheck.net)を使用してスクリプトをチェックするだけです。また 'for file in cscore'はあなたがしたいことではないかもしれません。 – sjsam