# PRC1 pipeline
PCGF1
https://www.ncbi.nlm.nih.gov/gene/5517480
## lab3
```
#cd ~/labs
mkdir ~/prc1
cd ~/prc1
git clone https://github.com/Bio312/lab3
cd lab3
gunzip proteomes/*.gz
cat proteomes/* > allprotein.fas
makeblastdb -in allprotein.fas -dbtype prot
ncbi-acc-download -F fasta -m protein XP_032217712.2
blastp -db allprotein.fas -query XP_032217712.2.fa -outfmt 0 -max_hsps 1 -out prc1.blastp.typical.out
blastp -db allprotein.fas -query XP_032217712.2.fa -outfmt "6 sseqid pident length mismatch gapopen evalue bitscore pident stitle" -max_hsps 1 -out prc1.blastp.detail.out
grep Nvectensis prc1.blastp.detail.out | less -S
awk '{if ($6<0.000002)print $1 }' prc1.blastp.detail.out > prc1.blastp.detail.filtered.out
wc -l prc1.blastp.detail.filtered.out
seqkit grep --pattern-file prc1.blastp.detail.filtered.out allprotein.fas > prc1.homologs.fas
muscle -in prc1.homologs.fas -out prc1.homologs.al.fas
t_coffee -other_pg seq_reformat -in prc1.homologs.al.fas -output sim | less -S
total 12.7% identity!!!
~/tools/mafft-linux64/mafft.bat --localpair --maxiterate 100 prc1.homologs.fas > prc1.homologs.mafftal.fas
t_coffee -other_pg seq_reformat -in prc1.homologs.mafftal.fas -output sim | less -S
total 20.64% identity!
alv -kli --majority prc1.homologs.mafftal.fas | less -RS
```
## canonical visual opsins
XP_021357501.1
```
mkdir ~/opsin
cd ~/opsin
git clone https://github.com/Bio312/lab3
cd lab3
gunzip proteomes/*.gz
cat proteomes/* > allprotein.fas
makeblastdb -in allprotein.fas -dbtype prot
ncbi-acc-download -F fasta -m protein XP_021357501.1
blastp -db allprotein.fas -query XP_021357501.1.fa -outfmt 0 -max_hsps 1 -out opsin.blastp.typical.out
blastp -db allprotein.fas -query XP_021357501.1.fa -outfmt "6 sseqid pident length mismatch gapopen evalue bitscore pident stitle" -max_hsps 1 -out opsin.blastp.detail.out
awk '{if ($6< 6e-37 )print $1 }' opsin.blastp.detail.out > opsin.blastp.detail.filtered.out
wc -l opsin.blastp.detail.filtered.out #59
grep -o -E "^[A-Z][a-z]+\." opsin.blastp.detail.filtered.out | sort | uniq -c
5 Aplanci.
6 Avaga.
14 Bbelcheri.
2 Cintestinalis.
7 Dmelanogaster.
4 Hsapiens.
10 Lanatina.
11 Myessoensis.
#expecting from below search...
qseqid tophits avPid avLength
2: Myessoensis.XP_021357501.1_rhodopsin_GQcoupled 59 35.38475 307.5424
Myessoensis Lanatina Bbelcheri Aplanci Cintestinalis Avaga Dmelanogaster
2: 11 10 14 5 1 6 7
Hsapiens Egranulosus minSp maxSp numZero unchar
2: 5 0 0 14 1 FALSE
grep -o -E "^[A-Z][a-z]+\." opsin.blastp.detail.filtered.out | sort | uniq -c | wc -l
8
seqkit grep --pattern-file opsin.blastp.detail.filtered.out allprotein.fas > opsin.homologs.fas
muscle -in opsin.homologs.fas -out opsin.homologs.al.fas
t_coffee -other_pg seq_reformat -in opsin.homologs.al.fas -output sim
25.10% ID
alv -kli --majority opsin.homologs.al.fas | less -RS
```
## lab4
```
iqtree -s opsin.homologs.al.fas -m VT+F+R10
```
start 2:14, end 2:28; 14 minutes
44 dups, 54 losses (59 genes) score 120 (2.03 points per gene)
## XP_021373098.1 as query (discovered from below)
ncbi-acc-download -F fasta -m protein XP_021373098.1
blastp -db allprotein.fas -query XP_021373098.1.fa -outfmt 0 -max_hsps 1 -out opsin.blastp.typical.out
blastp -db allprotein.fas -query XP_021373098.1.fa -outfmt "6 sseqid pident length mismatch gapopen evalue bitscore pident stitle" -max_hsps 1 -out opsin.blastp.detail.out
awk '{if ($6< 1e-35 )print $1 }' opsin.blastp.detail.out > opsin.blastp.detail.filtered.out
wc -l opsin.blastp.detail.filtered.out #48
qseqid tophits avPid avLength
3: Myessoensis.XP_021373098.1_rhodopsin_GQcoupledlike 48 36.29167 297.1042
Myessoensis Lanatina Bbelcheri Aplanci Cintestinalis Avaga Dmelanogaster
3: 8 8 9 5 2 4 7
Hsapiens Egranulosus minSp maxSp numZero unchar
3: 5 0 0 9 1 FALSE
grep -o -E "^[A-Z][a-z]+\." opsin.blastp.detail.filtered.out | sort | uniq -c
5 Aplanci.
4 Avaga.
10 Bbelcheri.
1 Cintestinalis.
7 Dmelanogaster.
5 Hsapiens.
8 Lanatina.
8 Myessoensis.
grep -o -E "^[A-Z][a-z]+\." opsin.blastp.detail.filtered.out | sort | uniq -c | wc -l
8
seqkit grep --pattern-file opsin.blastp.detail.filtered.out allprotein.fas > opsin.homologs.fas
muscle -in opsin.homologs.fas -out opsin.homologs.al.fas
t_coffee -other_pg seq_reformat -in opsin.homologs.al.fas -output sim
26.49% ID
alv -kli --majority opsin.homologs.al.fas | less -RS
iqtree -s opsin.homologs.al.fas -m VT+F+R10
#started 2:04 - 2:11 (7 minutes)
37 dups, 45 losses (48 genes) score 100.5 (2.09points/gene)
# finding all groups of genes
#seqkit split2 --by-size 1 GCF_002113885.1_ASM211388v2.longest.renamed.faa
module load diamond/2.0.10
diamond makedb --in allprotein.fas --db allproteinDiamond
diamond blastp \
--db allproteinDiamond \
--query proteomes/GCF_002113885.1_ASM211388v2.longest.renamed.faa \
--very-sensitive \
--outfmt 6 qseqid sseqid pident length mismatch gapopen evalue bitscore pident stitle \
--evalue 1e-30 \
--max-hsps 1 \
--max-target-seqs 500 \
--threads 24 \
--out diamondFullMizuproteome.out
module load R/4.1.1
library(data.table)
library(dplyr)
library(stringr)
library(matrixStats)
b1 <- fread("diamondFullMizuproteome.out")
colnames(b1) <- c("qseqid", "sseqid", "pident", "length", "mismatch", "gapopen", "evalue", "bitscore", "pident2", "stitle")
b2 <- as.data.table(b1 %>% mutate(species = str_extract(stitle, "^[A-Z][a-z]+")))
myevalue <- 1e-30
b1e70 <- b2[evalue<myevalue, .(tophits = .N, avPid = mean(pident),avLength = mean(length), Myessoensis = sum(species=="Myessoensis"),
Lanatina = sum(species=="Lanatina"),
Bbelcheri = sum(species=="Bbelcheri"),
Aplanci = sum(species=="Aplanci"),
Cintestinalis = sum(species=="Cintestinalis"),
Avaga = sum(species=="Avaga"),
Dmelanogaster = sum(species=="Dmelanogaster"),
Hsapiens = sum(species=="Hsapiens"),
Egranulosus = sum(species=="Egranulosus")),
by = qseqid]
b1e70[, minSp := rowMins(as.matrix(.SD)), .SDcols = 5:13][]
b1e70[, maxSp := rowMaxs(as.matrix(.SD)), .SDcols = 5:13][]
b1e70[, numZero := sum(.SD==0), .SDcols = 5:13,by=1:nrow(b1e70)][]
b1e70[, numZero := sum(.SD==0), .SDcols = 5:13,by=1:nrow(b1e70)][]
b1e70[, unchar := grepl("uncharacterized",.SD), .SDcols = 1,by=1:nrow(b1e70)][]
###
b1opsin <- subset(b1e70,grepl("opsin",qseqid) & tophits <= 60 & tophits >= 25 & numZero <= 1 & maxSp <= 15 & avLength > 200)
qseqid tophits avPid avLength
1: Myessoensis.XP_021355729.1_rhodopsin_G0coupled 45 31.65333 302.6667
2: Myessoensis.XP_021357501.1_rhodopsin_GQcoupled 59 35.38475 307.5424
3: Myessoensis.XP_021373098.1_rhodopsin_GQcoupledlike 48 36.29167 297.1042
Myessoensis Lanatina Bbelcheri Aplanci Cintestinalis Avaga Dmelanogaster
1: 11 6 14 5 1 3 1
2: 11 10 14 5 1 6 7
3: 8 8 9 5 2 4 7
Hsapiens Egranulosus minSp maxSp numZero unchar
1: 4 0 0 14 1 FALSE
2: 5 0 0 14 1 FALSE
3: 5 0 0 9 1 FALSE
###
b1e70F <- subset(b1e70,numZero == 0 & tophits <= 60 & tophits >= 30 & maxSp <= 15 & minSp >= 2 & avLength > 200 & unchar==FALSE ) #
prohibitids <- ""
keepids <- ""
## now, go through hits. if any hit has self hits < evalue, remove it
for(dx in b1e70F$qseqid){
if(!(dx %in% prohibitids )){
keepids <- c(keepids,dx)
prohibitids <- c(prohibitids,subset(b2,species=="Myessoensis" & evalue < myevalue & stitle == dx & qseqid != dx)$qseqid)
}
}
length(keepids) #134
save(b1e70F,file="b1e70Fnosacc.rda")
save(keepids,file="keepidsnosacc.rda")
write.table(keepids,file="idsb1e70nosacc.txt")
1e-39: 107
1e-30: 129
keep: Myessoensis.XP_021372857.1_solute_carrier_family_1
get rid of:
1: Myessoensis.XP_021372049.1_solute_carrier_family_1
2: Myessoensis.XP_021357580.1_solute_carrier_family_1
3: Myessoensis.XP_021354279.1_solute_carrier_family_1
4: Myessoensis.XP_021360761.1_solute_carrier_family_1
###### tags: `bio312`