両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
mitosearch色分け情報の作成 [2023/01/09 03:22] – [2023-01] 118.240.79.152 | mitosearch色分け情報の作成 [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 |
---|
# 和名ファイルの準備 | |
| |
`20210718_JAFList.xlsx`をダウンロードしておく。「和名」と「学名」をサクラエディタに張り付けて、「"」の文字をCtrl+Rで「」に置換して削除してから(セル内改行があると、改行コードLFで改行された""で囲まれた文字が出現するための対応。WinはCR+LFがデフォルト)、改行コードをLFで統一して保存する。 | |
| |
m50v251n3の`/home/yoshitake/mitosearch/Mitosearch/data/fish/japname.txt`に転送する。 | |
| |
``` | |
#本当はgrep -v "^和名なし"を入れたいけど、不一致が出るので省略 | |
#cat japname.txt |grep -v "^和名なし"|grep -v "^[a-zA-Z]"|awk -F'\t' '{split($2,arr," "); print arr[1]" "arr[2]"\t"$0}' > japname2.txt | |
tac japname.txt |grep -v "^[a-zA-Z]"|awk -F'\t' '{split($2,arr," "); print arr[1]" "arr[2]"\t"$0}' > japname2.txt | |
| |
| |
blastdbcmd -db ~/mitosearch_related_files/db/complete_partial_mitogenomes.fa -entry all|grep ">"|sed 's/ [(].*//'|awk '{split($0,arr,"|"); print arr[2]"\t"arr[3]}'|awk -F'\t' 'FILENAME==ARGV[1]{jap[$1]=$2} FILENAME==ARGV[2]{split($2,arr," "); print jap[arr[1]" "arr[2]]"\t"$0}' japname2.txt /dev/stdin > japname3.txt | |
#cat /home/yoshitake/mitosearch_update_db/db/complete_partial_mitogenomes.fa|grep ">"|sed 's/ [(].*//'|awk '{split($0,arr,"|"); print arr[2]"\t"arr[3]}'|awk -F'\t' 'FILENAME==ARGV[1]{jap[$1]=$2} FILENAME==ARGV[2]{split($2,arr," "); print jap[arr[1]" "arr[2]]"\t"$0}' japname2.txt /dev/stdin > japname3.txt | |
| |
zcat ~/yoshitake/nucl_gb.accession2taxid.gz |awk -F'\t' 'FILENAME==ARGV[1]{a[$2]=1} FILENAME==ARGV[2]{if(a[$1]==1){b[$1]=$3}else{delete a[$1]}} FILENAME==ARGV[3]{name[$1]=$2} FILENAME==ARGV[4]{print $0"\t"name[b[$2]]}' japname3.txt /dev/stdin ~/yoshitake/names.dmp.sname.path ./japname3.txt > japname4.txt | |
| |
more japname4.txt|awk -F'\t' '$4!=""'|sed 's/.*\troot;//'|cut -f 10- -d";"|sort|uniq -c|sed 's/^ *//; s/ /\t/' > japname4.txt2 | |
| |
j=12; more japname4.txt2|awk -F'\t' -v j=$j '{split($2,arr,";"); str=arr[1]; for(i=2;i<j;i++){str=str";"arr[i]}; cnt[str]+=$1; all+=$1} END{for(i in cnt){print cnt[i]"\t"i"\t"all}}'|sort -k1,1nr|more | |
#j=11, 12,,,などとやってトップが1/8以上になるところを調べる 688858/8=86107 | |
#機械的にクラスター設定をしようと思ったけど、結局伊藤くんが設定してくれていた分類をつかうことにした。 | |
| |
more japname4.txt|awk -F'\t' '{a[$3]++; if(a[$3]==1){print $0}}'|awk -F'\t' 'BEGIN{str="Vertebrata;Gnathostomata;Chondrichthyes,Vertebrata;Gnathostomata;Teleostomi,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Osteoglossocephalai,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Elopocephalai,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Osteoglossocephalai;Clupeocephala;Euteleosteomorpha,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Osteoglossocephalai;Clupeocephala;Euteleosteomorpha;Neoteleostei,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Osteoglossocephalai;Clupeocephala;Euteleosteomorpha;Neoteleostei,Vertebrata;Gnathostomata;Teleostomi;Euteleostomi;Actinopterygii;Actinopteri;Neopterygii;Teleostei;Osteoglossocephalai;Clupeocephala;Euteleosteomorpha;Neoteleostei;Eurypterygia;Ctenosquamata;Acanthomorphata;Euacanthomorphacea;Percomorphaceae;Eupercaria"; split(str,arr,",")} {col=0; for(i=1;i<=8;i++){if($4~arr[i]){col=i}}; print col"\t"$0}'|awk -F'\t' '{if($2!=""){print $2":"$4" \t"$1}else{print $4" \t"$1}}'|sort|uniq > japname5.txt | |
| |
cp japname5.txt classifylist.txt | |
| |
``` | |
# 2022-09 | |
| |
MitoFishDBのすべての魚のtaxonomy pathを取得 | |
| |
``` | |
blastdbcmd -db ~/mitosearch_related_files/db/complete_partial_mitogenomes.fa -entry all|grep ">"|cut -f 2 -d '|'|awk -F'\t' 'FILENAME==ARGV[1]{a[$1]=1} FILENAME==ARGV[2]&&$1 in a{b[$1]=$3} FILENAME==ARGV[3]{c[$1]=$2} FILENAME==ARGV[4]{print $1"\t"c[b[$1]]}' /dev/stdin <(zcat ~/yoshitake/nucl_gb.accession2taxid.gz ) ~/yoshitake/names.dmp.sname.path <(blastdbcmd -db ~/mitosearch_related_files/db/complete_partial_mitogenomes.fa -entry all|grep ">"|cut -f 2 -d '|') > ~/yoshitake/complete_partial_mitogenomes.fa.taxpath | |
more ~/yoshitake/complete_partial_mitogenomes.fa.taxpath|cut -f 2|sort|uniq > ~/yoshitake/complete_partial_mitogenomes.fa.taxpath2 | |
| |
cd /home/yoshitake/mitosearch_related_files/script | |
./grouping.js ~/yoshitake/complete_partial_mitogenomes.fa.taxpath2 | |
| |
``` | |
| |
``` | |
more japname3.txt |awk -F'\t' '{if($1!=""){print $1":"$3"\t"$2}else{print $3"\t"$2}}'| awk -F'\t' 'a[$1]==""{a[$1]=1; print $0}' > japname3.txt2 | |
awk -F'\t' 'FILENAME==ARGV[1]{tax2col[$1]=$2} FILENAME==ARGV[2]{mitoid2tax[$1]=$2} FILENAME==ARGV[3]{print $1" \t"tax2col[mitoid2tax[$2]]}' classifylist.txt complete_partial_mitogenomes.fa.taxpath japname3.txt2 > japname3.txt2.class | |
cp japname3.txt2.class ~/mitosearch_dev/mitosearch/Mitosearch/data/fish/classifylist.txt | |
``` | |
# 2023-01 | |
| |
和名を付与しなおし | |
| |
``` | |
more ~/mitosearch/Mitosearch/data/fish/classifylist.txt|sed 's/^[^:]*://'|awk -F'\t' '{print $2"\t"$1}'|awk -F"\t" '{split($2,arr,";");if(arr[length(arr)]~" x "){split(arr[length(arr)],array," x ");print $1"\t"array[length(array)];}else{print $1"\t"arr[length(arr)];}}' > tmp | |
| |
awk -F"\t" ' | |
{if(FILENAME==ARGV[1]){list[$2]=$1;}if(FILENAME==ARGV[2]){for(i in list){if($2~i){list2[$1":"i]=list[i];delete list[i];}}}} | |
END{PROCINFO["sorted_in"]="@val_num_desc";for(i in list2){print list2[i]"\t"i;}} | |
' tmp ../db/scientificname2japanesename_complete.csv > tmp2 | |
| |
awk -F"\t" ' | |
{if(FILENAME==ARGV[1]){list[$2]=$1;}if(FILENAME==ARGV[2]){for(i in list){if($2~i){delete list[i];}}}} | |
END{for(i in list){print list[i]"\t"i;}} | |
' tmp tmp2 > tmp3 | |
awk -F"\t" ' | |
{if(FILENAME==ARGV[1]){list[$2]=$1;}if(FILENAME==ARGV[2]){for(i in list){split(i,array," ");if($2~array[1]){list[$3":"i]=list[i];delete list[i];}}}} | |
END{PROCINFO["sorted_in"]="@val_num_desc";for(i in list){print list[i]"\t"i;}} | |
' tmp3 ../db/scientificname2japanesename_complete.csv > tmp4 | |
cat tmp2 tmp4| | |
awk -F"\t" '{list[$2]=$1;}END{PROCINFO["sorted_in"]="@val_num_desc";for(i in list){print list[i]"\t"i;}}'| | |
awk -F'\t' '{if(FNR==1){print "id\t'${prefix}'.fastq"}; n[NR]=$2; v[NR]=$1; cnt+=$1} END{for(i=1;i<=NR;i++){print n[i]"\t"v[i]/cnt*100}}' > tmp.cla | |
``` | |
| |
| |