代碼保存位置: /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/script/
1.sample_info.sh
#!bin/bash
#指定list代表的文件
list=/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/script/Symblel2Ensembl.txt
#逐行遍歷list文件列表
while read line
do
arr=($line) #將該行賦值給arr
panel=${arr[0]} #該行第一列賦值給panel
id=${arr[1]} #該行第二列賦值給id
#grep從輸入文件中遍歷逐行提取包含字符Ensembl_ID和$id的行,并導(dǎo)出到輸出文件中
grep -E "Ensembl_ID|$id" "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KIRP/TCGA-KIRP.htseq_fpkm4.tsv" > "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KIRP/sample_gene/sample_info2.$panel.$id"
done<$list
#逐行遍歷list文件列表
while read line
do
arr=($line) #將該行賦值給arr
panel=${arr[0]} #該行第一列賦值給panel
id=${arr[1]} #該行第二列賦值給id
#grep從輸入文件中遍歷逐行提取包含字符Ensembl_ID和$id的行,并導(dǎo)出到輸出文件中
grep -E "Ensembl_ID|$id" "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KIRC/TCGA-KIRC.htseq_fpkm4.tsv" > "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KIRC/sample_gene/sample_info2.$panel.$id"
done<$list
#逐行遍歷list文件列表
while read line
do
arr=($line) #將該行賦值給arr
panel=${arr[0]} #該行第一列賦值給panel
id=${arr[1]} #該行第二列賦值給id
#grep從輸入文件中遍歷逐行提取包含字符Ensembl_ID和$id的行,并導(dǎo)出到輸出文件中
grep -E "Ensembl_ID|$id" "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KICH/TCGA-KICH.htseq_fpkm4.tsv" > "/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KICH/sample_gene/sample_info2.$panel.$id"
done<$list
cat /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/script/Symblel2Ensembl.txt #查看list文件內(nèi)容

image.png
cat /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KICH/TCGA-KICH.htseq_fpkm4.tsv #查看TCGA-KICH.htseq_fpkm4.tsv文件內(nèi)容

image.png
2.sample_info2Tosample_info.txt.sh
#!bin/bash
#首先設(shè)置for循環(huán),$i遍歷RP,RC,CH三個字符
for i in RP RC CH
do
#指定list1代表的文件
list1=/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/script/Symblel2Ensembl.txt
#逐行遍歷list1文件列表
while read line
do
Suffix=($line) #將該行賦值給Suffix
Suffix1=${Suffix[0]} #該行第一列賦值給Suffix1
Suffix2=${Suffix[1]} #該行第二列賦值給Suffix2
#awk將輸入文件進(jìn)行轉(zhuǎn)置,并導(dǎo)出為輸出文件
awk '{for(i=1;i<=NF;i++)a[NR,i]=$i}END{for(j=1;j<=NF;j++)for(k=1;k<=NR;k++)printf k==NR?a[k,j] RS:a[k,j] FS}' /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KI$i/sample_gene/sample_info2.${Suffix1}.${Suffix2} > /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KI$i/sample_gene/sample_info2.${Suffix1}.${Suffix2}.Trans
#指定lis2t代表的文件
list2=/mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KI$i/sample_gene/sample_info2.${Suffix1}.${Suffix2}.Trans
#計(jì)算list2文件中第二列,即基因表達(dá)量的平均值,并賦值給aver.
aver=`cat $list2 |awk 'NR>1 {sum += $2; } END {sum; print sum/(NR-1)}'`
#判斷$list2.group文件是否存在,若不存在則顯示文件不存在,若存在則刪除原文件
if [ ! -f "$list2.group" ];then
echo "文件不存在"
else
rm -f $list2.group
fi
#逐行遍歷list2文件列表
while read line
do
arr=($line) #將該行賦值給arr
sample=${arr[0]} #該行第一列賦值給sample
exp=${arr[1]} #該行第二列賦值給exp
B="ENSG" #將字符ENSG賦值給B
if [[ $exp == $B* ]] #判定$exp是否包含ENSG這一字符
then
line=`echo $sample $exp "label"` #將$sample $exp label賦值給line
elif [ `expr $exp \> $aver` -eq 1 ] #判斷該樣本基因表達(dá)值與平均值的大小
then
line=`echo $sample $exp "high"` #若該樣本基因表達(dá)值高于平均值將,則將$sample $exp high賦值給line
else
line=`echo $sample $exp "low"` #若該樣本基因表達(dá)值高于平均值將,則將$sample $exp low賦值給line
fi
echo "$line" >> "$list2.group" #將line所包含的內(nèi)容追加寫入到$list2.group文件中
done<$list2
done<$list1
done
cat /mnt/vol2_ws/test/projects/xcy/data/2021-8-12-liang/data/11/tcga/TCGA-KIRP/sample_gene/sample_info2.ATM.ENSG00000149311.Trans #查看list2文件內(nèi)容

image.png