src/hg/makeDb/doc/calJac3.txt 1.12
1.12 2010/05/18 23:52:28 mary
forgot to update makedoc with the final version of the find command I used to change the date for calJac3
Index: src/hg/makeDb/doc/calJac3.txt
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/doc/calJac3.txt,v
retrieving revision 1.11
retrieving revision 1.12
diff -b -B -U 1000000 -r1.11 -r1.12
--- src/hg/makeDb/doc/calJac3.txt 13 May 2010 21:35:49 -0000 1.11
+++ src/hg/makeDb/doc/calJac3.txt 18 May 2010 23:52:28 -0000 1.12
@@ -1,1517 +1,1517 @@
# for emacs: -*- mode: sh; -*-
# $Id$
# Marmoset sequence: http://panda.genomics.org.cn/page/panda/download.jsp
# ftp.ncbi.nlm.nih.gov/genbank/genomes/Eukaryotes/vertebrates_mammals/
# Callithrix_jacchus/Callithrix_jacchus-3.2
# Callithrix jacchus
##########################################################################
# Download sequence (DONE - 2010-02-04 - Hiram)
mkdir /hive/data/genomes/calJac3
cd /hive/data/genomes/calJac3
mkdir genbank
cd genbank
wget --timestamping -r --cut-dirs=6 --level=0 -nH -x \
--no-remove-listing -np \
"ftp://ftp.ncbi.nlm.nih.gov/genbank/genomes/Eukaryotes/vertebrates_mammals/Callithrix_jacchus/Callithrix_jacchus-3.2/*"
mkdir ucscChr
cd ucscChr
# fixup the accession names to become UCSC chrom names
zcat ../Primary_Assembly/unplaced_scaffolds/FASTA/unplaced.scaf.fa.gz \
| sed -e "s/^>.*gb|\([A-Z]*[0-9]*\).1.*/>chrUn_\1/" > chrUn.fa
zcat ../Primary_Assembly/unplaced_scaffolds/AGP/unplaced.scaf.agp.gz \
| sed -e "s/^\([A-Z]*[0-9]*\).1/chrUn_\1/" > chrUn.agp
find ../Primary_Assembly/unlocalized_scaffolds/FASTA -type f \
| grep "unlocalized.scaf.fa.gz$" | head -1 | while read F
do
C=`basename ${F}`
C=${C/.unlocalized.scaf.fa.gz}
zcat "${F}" | sed -e "s/^>.*gb|\([A-Z]*[0-9]*\).1.*/>${C}_\1_random/"
done > chr_randoms.fa
find ../Primary_Assembly/unlocalized_scaffolds/AGP -type f | grep ".agp.gz$" \
| while read F
do
C=`basename ${F}`
echo -n "${C} "
C=${C/.unlocalized.scaf.agp.gz}
echo "${C}"
zcat "${F}" | sed -e "s/^\([A-Z]*[0-9]*\).1/${C}_\1_random/"
done > chr_randoms.agp
AC="../Primary_Assembly/assembled_chromosomes"
for F in ${AC}/FASTA/chr*.fa.gz
do
C=`basename $F`
C=${C/.fa.gz}
echo -n "${C} "
H=`zcat "${F}" | head -1`
chrN=`echo $H | sed -e "s/.*Callithrix jacchus chromosome /chr/; s/,
.*//"`
A=`echo $H | sed -e "s/. Callithrix.*//; s/.*gb.//"`
echo $chrN $A
zcat ${AC}/AGP/${chrN}.comp.agp.gz \
| sed -e "s/^${A}/${chrN}/" > ${chrN}.agp
echo ">${chrN}" > ${chrN}.fa
zcat ${AC}/FASTA/${chrN}.fa.gz | grep -v "^>" >> ${chrN}.fa
done
##########################################################################
# Initial genome build (DONE - 2009-12-17 - Hiram)
cd /hive/data/genomes/calJac3
cat << '_EOF_' > calJac3.config.ra
# Config parameters for makeGenomeDb.pl:
db calJac3
clade mammal
genomeCladePriority 16
scientificName Callithrix jacchus
commonName Marmoset
assemblyDate Mar. 2009
assemblyLabel WUSTL 3.2 (GCA_000004665.1)
orderKey 40
mitoAcc none
fastaFiles /hive/data/genomes/calJac3/genbank/ucscChr/*.fa
agpFiles /hive/data/genomes/calJac3/genbank/ucscChr/*.agp
# qualFiles none
dbDbSpeciesDir marmoset
taxId 9483
'_EOF_'
makeGenomeDb.pl -workhorse=hgwdev -stop=seq calJac3.config.ra > seq.out 2>&1
# real 4m5.924s
makeGenomeDb.pl -continue=agp -stop=agp calJac3.config.ra > agp.out 2>&1
# real 0m20.968s
makeGenomeDb.pl -continue=db -stop=db calJac3.config.ra > db.out 2>&1
# real 5m39.181s
# XXX - chromInfo doesn't have large enough fields for the name keys
# been fixed in later versions of makeGenomeDb.pl
makeGenomeDb.pl -continue=dbDb -stop=dbDb calJac3.config.ra > dbDb.out 2>&1
makeGenomeDb.pl -continue=trackDb -stop=trackDb calJac3.config.ra > trackDb.out 2>&1
##########################################################################
# running repeat masker (DONE - 2010-02-02 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/repeatMasker
cd /hive/data/genomes/calJac3/bed/repeatMasker
time doRepeatMasker.pl -buildDir=`pwd` -noSplit \
-bigClusterHub=swarm -dbHost=hgwdev -workhorse=hgwdev \
-smallClusterHub=memk calJac3 > do.log 2>&1 &
# real 443m55.891s
cat faSize.rmsk.txt
# 2914958544 bases (162452744 N's 2752505800 real 1439949519 upper 1312556281
# lower) in 14205 sequences in 1 files
# %45.03 masked total, %47.69 masked real
##########################################################################
# running simple repeat (DONE - 2010-02-02 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/simpleRepeat
cd /hive/data/genomes/calJac3/bed/simpleRepeat
time doSimpleRepeat.pl -buildDir=`pwd` -bigClusterHub=swarm \
-dbHost=hgwdev -workhorse=hgwdev -smallClusterHub=memk \
calJac3 > do.log 2>&1 &
# real 198m33.953s
cat fb.simpleRepeat
# 66211508 bases of 2752505800 (2.405%) in intersection
cd /hive/data/genomes/calJac3
twoBitMask calJac3.rmsk.2bit \
-add bed/simpleRepeat/trfMask.bed calJac3.2bit
# you can safely ignore the warning about fields >= 13
twoBitToFa calJac3.2bit stdout | faSize stdin > faSize.calJac3.2bit.txt
cat faSize.calJac3.2bit.txt
# 2914958544 bases (162452744 N's 2752505800 real 1439244378 upper
# 1313261422 lower) in 14205 sequences in 1 files
# %45.05 masked total, %47.71 masked real
rm /gbdb/calJac3/calJac3.2bit
ln -s `pwd`/calJac3.2bit /gbdb/calJac3/calJac3.2bit
#########################################################################
# MAKE 11.OOC FILES FOR BLAT (DONE - 2010-02-03 - Hiram)
ssh kolossus
# numerator is calJac3 gapless bases "real" as reported by faSize
# denominator is hg17 gapless bases as reported by featureBits,
# 1024 is threshold used for human -repMatch:
calc \( 2752505800 / 2897310462 \) \* 1024
# ( 2752505800 / 2897310462 ) * 1024 = 972.821510
# ==> use -repMatch=950 according to size scaled down from 1024 for human.
# and rounded down to nearest 50
cd /hive/data/genomes/calJac3
blat calJac3.2bit /dev/null /dev/null -tileSize=11 \
-makeOoc=jkStuff/calJac3.11.ooc -repMatch=950
# Wrote 32908 overused 11-mers to jkStuff/calJac3.11.ooc
mkdir /hive/data/staging/data/calJac3
cp -p calJac3.2bit chrom.sizes jkStuff/calJac3.11.ooc \
/hive/data/staging/data/calJac3
gapToLift -bedFile=jkStuff/nonBridgedGaps.bed calJac3 \
jkStuff/calJac3.nonBridged.lft
##########################################################################
# BLATSERVERS ENTRY (DONE - 2009-12-23 - Hiram)
# After getting a blat server assigned by the Blat Server Gods,
ssh hgwdev
hgsql -e 'INSERT INTO blatServers (db, host, port, isTrans, canPcr) \
VALUES ("calJac3", "blat12", "17804", "1", "0"); \
INSERT INTO blatServers (db, host, port, isTrans, canPcr) \
VALUES ("calJac3", "blat12", "17805", "0", "1");' \
hgcentraltest
# test it with some sequence
############################################################################
# reset position to RHO location as found from blat of hg19 RHO gene
hgsql -e \
'update dbDb set defaultPos="chr15:67439781-67471107" where name="calJac3";' \
hgcentraltest
############################################################################
# genbank run (DONE - 2010-02-04 - Hiram)
ssh hgwdev
cd $HOME/kent/src/hg/makeDb/genbank
# edit etc/genbank.conf to add this section just before calJac1:
# Marmoset
calJac3.serverGenome = /hive/data/genomes/calJac3/calJac3.2bit
calJac3.clusterGenome = /scratch/data/calJac3/calJac3.2bit
calJac3.ooc = /scratch/data/calJac3/calJac3.11.ooc
calJac3.lift = no
calJac3.perChromTables = no
calJac3.refseq.mrna.native.pslCDnaFilter = ${ordered.refseq.mrna.native.pslCDnaFilter}
calJac3.refseq.mrna.xeno.pslCDnaFilter = ${ordered.refseq.mrna.xeno.pslCDnaFilter}
calJac3.genbank.mrna.native.pslCDnaFilter = ${ordered.genbank.mrna.native.pslCDnaFilter}
calJac3.genbank.mrna.xeno.pslCDnaFilter = ${ordered.genbank.mrna.xeno.pslCDnaFilter}
calJac3.genbank.est.native.pslCDnaFilter = ${ordered.genbank.est.native.pslCDnaFilter}
calJac3.genbank.est.xeno.pslCDnaFilter = ${ordered.genbank.est.xeno.pslCDnaFilter}
calJac3.downloadDir = calJac3
calJac3.refseq.mrna.native.load = yes
calJac3.refseq.mrna.xeno.load = yes
calJac3.refseq.mrna.xeno.loadDesc = yes
cvs ci -m "adding marmoset calJac3" etc/genbank.conf
make etc-update
ssh genbank
screen # control this business with a screen since it takes a while
cd /cluster/data/genbank
time nice -n +19 bin/gbAlignStep -initial calJac3 &
# var/build/logs/2010.02.10-09:19:20.calJac3.initalign.log
# real 238m59.390s
ssh hgwdev
cd /cluster/data/genbank
time ./bin/gbDbLoadStep -drop -initialLoad calJac3 &
# logFile: var/dbload/hgwdev/logs/2010.02.11-10:41:22.dbload.log
# real 25m55.474s
# enable daily alignment and update of hgwdev
cd ~/kent/src/hg/makeDb/genbank
cvsup
# add calJac3 to:
etc/align.dbs
etc/hgwdev.dbs
cvs ci -m "Adding calJac3 - Marmoset - Callithrix jacchus" \
etc/align.dbs etc/hgwdev.dbs
make etc-update
# done - 2010-02-11 - Hiram
############################################################################
# running cpgIsland business (DONE - 2010-02-11 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/cpgIsland
cd /hive/data/genomes/calJac3/bed/cpgIsland
cvs -d /projects/compbio/cvsroot checkout -P hg3rdParty/cpgIslands
cd hg3rdParty/cpgIslands
# needed to fixup this source, adding include to readseq.c:
#include "string.h"
# and to cpg_lh.c:
#include "unistd.h"
#include "stdlib.h"
# and fixing a declaration in cpg_lh.c
sed -e "s#\(extern char\* malloc\)#// \1#" cpg_lh.c > tmp.c
mv tmp.c cpg_lh.c
make
cd ../../
ln -s hg3rdParty/cpgIslands/cpglh.exe
mkdir -p hardMaskedFa
cut -f1 ../../chrom.sizes | while read C
do
echo ${C}
twoBitToFa ../../calJac3.2bit:$C stdout \
| maskOutFa stdin hard hardMaskedFa/${C}.fa
done
ssh swarm
cd /hive/data/genomes/calJac3/bed/cpgIsland
mkdir results
cut -f1 ../../chrom.sizes > chr.list
cat << '_EOF_' > template
#LOOP
./runOne $(root1) {check exists results/$(root1).cpg}
#ENDLOOP
'_EOF_'
# << happy emacs
# the faCount business is to make sure there is enough sequence to
# work with in the fasta. cpglh.exe does not like files with too many
# N's - it gets stuck
cat << '_EOF_' > runOne
#!/bin/csh -fe
set C = `faCount hardMaskedFa/$1.fa | grep ^chr | awk '{print $2 - $7 }'`
if ( $C > 200 ) then
./cpglh.exe hardMaskedFa/$1.fa > /scratch/tmp/$1.$$
mv /scratch/tmp/$1.$$ $2
else
touch $2
endif
'_EOF_'
# << happy emacs
gensub2 chr.list single template jobList
para create jobList
para try
para check ... etc
para time
# Completed: 14205 of 14205 jobs
# CPU time in finished jobs: 205s 3.41m 0.06h 0.00d 0.000 y
# IO & Wait Time: 38701s 645.02m 10.75h 0.45d 0.001 y
# Average job time: 3s 0.05m 0.00h 0.00d
# Longest finished job: 23s 0.38m 0.01h 0.00d
# Submission to last job: 202s 3.37m 0.06h 0.00d
# Transform cpglh output to bed +
catDir results | awk '{
$2 = $2 - 1;
width = $3 - $2;
printf("%s\t%d\t%s\t%s %s\t%s\t%s\t%0.0f\t%0.1f\t%s\t%s\n",
$1, $2, $3, $5,$6, width,
$6, width*$7*0.01, 100.0*2*$6/width, $7, $9);
}' > cpgIsland.bed
cd /hive/data/genomes/calJac3/bed/cpgIsland
hgLoadBed calJac3 cpgIslandExt -tab \
-sqlTable=$HOME/kent/src/hg/lib/cpgIslandExt.sql cpgIsland.bed
# Reading cpgIsland.bed
# Loaded 32732 elements of size 10
# Sorted
# Saving bed.tab
# Loading calJac3
# cleanup
rm -fr hardMaskedFa
############################################################################
# LASTZ Human Swap (DONE - 2010-02-11 - Hiram)
# original alignment on hg19:
cd /hive/data/genomes/hg19/bed/lastzCalJac3.2010-02-11
cat fb.hg19.chainCalJac3Link.txt
# 2047068864 bases of 2897316137 (70.654%) in intersection
# and for this swap
mkdir /hive/data/genomes/calJac3/bed/blastz.hg19.swap
cd /hive/data/genomes/calJac3/bed/blastz.hg19.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/hg19/bed/lastzCalJac3.2010-02-11/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=medium > swap.log 2>&1 &
# real 120m42.991s
cat fb.calJac3.chainHg19Link.txt
# 2030475813 bases of 2752505800 (73.768%) in intersection
#####################################################################
# LASTZ Rhesus Swap (DONE - 2010-02-11 - Hiram)
# original alignment to rheMac2
cd /hive/data/genomes/rheMac2/bed/lastzCalJac3.2010-02-11
cat fb.rheMac2.chainCalJac3Link.txt
# 1871513554 bases of 2646704109 (70.711%) in intersection
# and for this swap
mkdir /hive/data/genomes/calJac3/bed/blastz.rheMac2.swap
cd /hive/data/genomes/calJac3/bed/blastz.rheMac2.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/rheMac2/bed/lastzCalJac3.2010-02-11/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=medium > swap.log 2>&1 &
# real 142m34.894s
cat fb.calJac3.chainHg19Link.txt
# 1916431926 bases of 2752505800 (69.625%) in intersection
############################################################################
# LASTZ Chimp Swap (DONE - 2010-02-11 - Hiram)
# original alignment to panTro2
cd /hive/data/genomes/panTro2/bed/lastzCalJac3.2010-02-11
cat fb.panTro2.chainCalJac3Link.txt
# 2016331285 bases of 2909485072 (69.302%) in intersection
# and this swap run
mkdir /hive/data/genomes/calJac3/bed/blastz.panTro2.swap
cd /hive/data/genomes/calJac3/bed/blastz.panTro2.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/panTro2/bed/lastzCalJac3.2010-02-11/DEF \
-swap -noLoadChainSplit -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=medium > swap.log 2>&1 &
# real 118m42.203s
cat fb.calJac3.chainHg19Link.txt
# 1990168262 bases of 2752505800 (72.304%) in intersection
############################################################################
# LASTZ Orangutan Swap (DONE - 2010-02-11 - Hiram)
# original alignment to ponAbe2
cd /hive/data/genomes/ponAbe2/bed/lastzCalJac3.2010-02-11
cat fb.ponAbe2.chainCalJac3Link.txt
# 2086557592 bases of 3093572278 (67.448%) in intersection
# and this swap run
mkdir /hive/data/genomes/calJac3/bed/blastz.ponAbe2.swap
cd /hive/data/genomes/calJac3/bed/blastz.ponAbe2.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/ponAbe2/bed/lastzCalJac3.2010-02-11/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=medium > swap.log 2>&1 &
# real 146m12.301s
cat fb.calJac3.chainHg19Link.txt
# 1978857628 bases of 2752505800 (71.893%) in intersection
#####################################################################
# lastz Dog CanFam2 Swap (DONE - 2010-02-14 - Hiram)
# original alignment
cd /hive/data/genomes/canFam2/bed/lastzCalJac3.2010-02-12
cat fb.canFam2.chainCalJac3Link.txt
# 1363307334 bases of 2384996543 (57.162%) in intersection
# and for the swap
mkdir /hive/data/genomes/calJac3/bed/blastz.canFam2.swap
cd /hive/data/genomes/calJac3/bed/blastz.canFam2.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/canFam2/bed/lastzCalJac3.2010-02-12/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
# real 129m56.144s
cat fb.calJac3.chainHg19Link.txt
# 1397333116 bases of 2752505800 (50.766%) in intersection
#########################################################################
# lastz Mouse Mm9 Swap (DONE - 2010-02-14 - Hiram)
# original alignment to mouse
cd /hive/data/genomes/mm9/bed/lastzCalJac3.2010-02-12
cat fb.mm9.chainCalJac3Link.txt
# 859869647 bases of 2620346127 (32.815%) in intersection
# and for the swap
mkdir /hive/data/genomes/calJac3/bed/blastz.mm9.swap
cd /hive/data/genomes/calJac3/bed/blastz.mm9.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/mm9/bed/lastzCalJac3.2010-02-12/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
# real 90m38.739s
cat fb.calJac3.chainHg19Link.txt
# 861811978 bases of 2752505800 (31.310%) in intersection
#####################################################################
# lastz Opossum monDom5 Swap (DONE - 2010-02-14 - Hiram)
# original alignment to Opossum
cd /hive/data/genomes/monDom5/bed/lastzCalJac3.2010-02-12
cat fb.monDom5.chainCalJac3Link.txt
# 216197506 bases of 3501660299 (6.174%) in intersection
# and for the swap
mkdir /hive/data/genomes/calJac3/bed/blastz.monDom5.swap
cd /hive/data/genomes/calJac3/bed/blastz.monDom5.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/monDom5/bed/lastzCalJac3.2010-02-12/DEF \
-swap -noLoadChainSplit -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=loose > swap.log 2>&1 &
# real 110m13.435s
cat fb.calJac3.chainMonDom5Link.txt
# 217614612 bases of 2752505800 (7.906%) in intersection
##############################################################################
# HUMAN (hg18) PROTEINS TRACK (working braney...)
# bash if not using bash shell already
cd /cluster/data/calJac3
mkdir /cluster/data/calJac3/blastDb
awk '{if ($2 > 1000000) print $1}' chrom.sizes > 1meg.lst
twoBitToFa -seqList=1meg.lst calJac3.2bit temp.fa
faSplit gap temp.fa 1000000 blastDb/x -lift=blastDb.lft
rm temp.fa 1meg.lst
awk '{if ($2 <= 1000000) print $1}' chrom.sizes > less1meg.lst
twoBitToFa -seqList=less1meg.lst calJac3.2bit temp.fa
faSplit about temp.fa 1000000 blastDb/y
rm temp.fa less1meg.lst
cd blastDb
for i in *.fa
do
/hive/data/outside/blast229/formatdb -i $i -p F
done
rm *.fa
ls *.nsq | wc -l
# 3275
mkdir -p /cluster/data/calJac3/bed/tblastn.hg18KG
cd /cluster/data/calJac3/bed/tblastn.hg18KG
echo ../../blastDb/*.nsq | xargs ls -S | sed "s/\.nsq//" > query.lst
wc -l query.lst
# 3275 query.lst
# we want around 350000 jobs
calc `wc /cluster/data/hg18/bed/blat.hg18KG/hg18KG.psl | awk '{print $1}'`/\(350000/`wc query.lst | awk '{print $1}'`\)
# 36727/(350000/3275) = 343.659786
mkdir -p kgfa
split -l 344 /cluster/data/hg18/bed/blat.hg18KG/hg18KG.psl kgfa/kg
cd kgfa
for i in *; do
nice pslxToFa $i $i.fa;
rm $i;
done
cd ..
ls -1S kgfa/*.fa > kg.lst
wc kg.lst
# 107 107 1391 kg.lst
mkdir -p blastOut
for i in `cat kg.lst`; do mkdir blastOut/`basename $i .fa`; done
tcsh
cd /cluster/data/calJac3/bed/tblastn.hg18KG
cat << '_EOF_' > blastGsub
#LOOP
blastSome $(path1) {check in line $(path2)} {check out exists blastOut/$(root2)/q.$(root1).psl }
#ENDLOOP
'_EOF_'
cat << '_EOF_' > blastSome
#!/bin/sh
BLASTMAT=/hive/data/outside/blast229/data
export BLASTMAT
g=`basename $2`
f=/tmp/`basename $3`.$g
for eVal in 0.01 0.001 0.0001 0.00001 0.000001 1E-09 1E-11
do
if /hive/data/outside/blast229/blastall -M BLOSUM80 -m 0 -F no -e $eVal -p tblastn -d $1 -i $2 -o $f.8
then
mv $f.8 $f.1
break;
fi
done
if test -f $f.1
then
if /cluster/bin/i386/blastToPsl $f.1 $f.2
then
liftUp -nosort -type=".psl" -nohead $f.3 /cluster/data/calJac3/blastDb.lft carry $f.2
liftUp -nosort -type=".psl" -pslQ -nohead $3.tmp /cluster/data/hg18/bed/blat.hg18KG/protein.lft warn $f.3
if pslCheck -prot $3.tmp
then
mv $3.tmp $3
rm -f $f.1 $f.2 $f.3 $f.4
fi
exit 0
fi
fi
rm -f $f.1 $f.2 $3.tmp $f.8 $f.3 $f.4
exit 1
'_EOF_'
# << happy emacs
chmod +x blastSome
exit
ssh swarm
cd /cluster/data/calJac3/bed/tblastn.hg18KG
gensub2 query.lst kg.lst blastGsub blastSpec
para create blastSpec
# para try, check, push, check etc.
para time
# Completed: 100076 of 100076 jobs
# CPU time in finished jobs: 2219419s 36990.31m 616.51h 25.69d 0.070 y
# IO & Wait Time: 445463s 7424.39m 123.74h 5.16d 0.014 y
# Average job time: 27s 0.44m 0.01h 0.00d
# Longest finished job: 319s 5.32m 0.09h 0.00d
# Submission to last job: 2791s 46.52m 0.78h 0.03d
ssh swarm
cd /cluster/data/calJac3/bed/tblastn.hg18KG
mkdir chainRun
cd chainRun
tcsh
cat << '_EOF_' > chainGsub
#LOOP
chainOne $(path1)
#ENDLOOP
'_EOF_'
cat << '_EOF_' > chainOne
(cd $1; cat q.*.psl | simpleChain -prot -outPsl -maxGap=12000 stdin ../c.`basename $1`.psl)
'_EOF_'
chmod +x chainOne
ls -1dS ../blastOut/kg?? > chain.lst
gensub2 chain.lst single chainGsub chainSpec
# do the cluster run for chaining
para create chainSpec
para try, check, push, check etc.
# Completed: 254 of 254 jobs
# CPU time in finished jobs: 590077s 9834.62m 163.91h 6.83d 0.019 y
# IO & Wait Time: 20749s 345.81m 5.76h 0.24d 0.001 y
# Average job time: 2405s 40.08m 0.67h 0.03d
# Longest finished job: 36592s 609.87m 10.16h 0.42d
# Submission to last job: 36604s 610.07m 10.17h 0.42d
cd /cluster/data/calJac3/bed/tblastn.hg18KG/blastOut
for i in kg??
do
cat c.$i.psl | awk "(\$13 - \$12)/\$11 > 0.6 {print}" > c60.$i.psl
sort -rn c60.$i.psl | pslUniq stdin u.$i.psl
awk "((\$1 / \$11) ) > 0.60 { print }" c60.$i.psl > m60.$i.psl
echo $i
done
sort u.*.psl m60* | uniq | sort -T /tmp -k 14,14 -k 16,16n -k 17,17n > ../blastHg18KG.psl
cd ..
pslCheck blastHg18KG.psl
# checked: 38517 failed: 0 errors: 0
# load table
ssh hgwdev
cd /cluster/data/calJac3/bed/tblastn.hg18KG
hgLoadPsl calJac3 blastHg18KG.psl
# check coverage
featureBits calJac3 blastHg18KG
# 18646943 bases of 332311746 (5.611%) in intersection
featureBits calJac3 blastHg18KG ensGene -enrichment
# blastHg18KG 5.611%, ensGene 9.520%, both 4.993%, cover 88.97%, enrich 9.35x
rm -rf blastOut
#end tblastn
##############################################################################
# papHam1 Baboon LASTZ/CHAIN/NET (DONE - 2010-02-15 - Hiram)
screen # use a screen to manage this multi-day job
mkdir /hive/data/genomes/calJac3/bed/lastzPapHam1.2010-02-15
cd /hive/data/genomes/calJac3/bed/lastzPapHam1.2010-02-15
cat << '_EOF_' > DEF
# baboon vs. marmoset
# same paramters as human hg19 vs marmoset calJac3
BLASTZ=lastz
# maximum M allowed with lastz is only 254
BLASTZ_M=254
BLASTZ_Q=/scratch/data/blastz/human_chimp.v2.q
BLASTZ_O=600
BLASTZ_E=150
BLASTZ_K=4500
BLASTZ_Y=15000
BLASTZ_T=2
# TARGET: Marmoset (calJac3)
SEQ1_DIR=/scratch/data/calJac3/calJac3.2bit
SEQ1_LEN=/scratch/data/calJac3/chrom.sizes
SEQ1_LIMIT=50
SEQ1_CHUNK=20000000
SEQ1_LAP=10000
# QUERY: Baboon papHam1
SEQ2_DIR=/scratch/data/papHam1/papHam1.2bit
SEQ2_LEN=/scratch/data/papHam1/chrom.sizes
SEQ2_CHUNK=20000000
SEQ2_LIMIT=300
SEQ2_LAP=0
BASE=/hive/data/genomes/calJac3/bed/lastzPapHam1.2010-02-15
TMPDIR=/scratch/tmp
'_EOF_'
# << this line keeps emacs coloring happy
time nice -n +19 $HOME/kent/src/hg/utils/automation/doBlastzChainNet.pl \
`pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=5000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
> do.log 2>&1 &
# failed lastz run, finished manually
# real 287m24.258s
time nice -n +19 doBlastzChainNet.pl `pwd`/DEF \
-continue=cat \
-verbose=2 -syntenicNet -chainMinScore=5000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
> cat.log 2>&1 &
# real 158m17.502s
cat fb.calJac3.chainPapHam1Link.txt
# 1928203329 bases of 2752505800 (70.053%) in intersection
time doRecipBest.pl -workhorse=hgwdev -buildDir=`pwd` \
calJac3 papHam1 > rbest.log 2>&1
# real 232m
mkdir /hive/data/genomes/papHam1/bed/blastz.calJac3.swap
cd /hive/data/genomes/papHam1/bed/blastz.calJac3.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/calJac3/bed/lastzPapHam1.2010-02-15/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
-chainMinScore=5000 -chainLinearGap=medium > swap.log 2>&1 &
# real 791m46.765s
cat fb.papHam1.chainCalJac3Link.txt
# 1908519637 bases of 2741867288 (69.607%) in intersection
##############################################################################
# tarSyr1 Tarsier LASTZ/CHAIN/NET (DONE - 2010-02-21 - Hiram)
screen # use a screen to manage this multi-day job
mkdir /hive/data/genomes/calJac3/bed/lastzTarSyr1.2010-02-21
cd /hive/data/genomes/calJac3/bed/lastzTarSyr1.2010-02-21
cat << '_EOF_' > DEF
# tarsier vs. marmoset
# same paramters as human hg19 vs tarsier tarSyr1
BLASTZ=lastz
# maximum M allowed with lastz is only 254
BLASTZ_M=254
# TARGET: Marmoset (calJac3)
SEQ1_DIR=/scratch/data/calJac3/calJac3.2bit
SEQ1_LEN=/scratch/data/calJac3/chrom.sizes
SEQ1_LIMIT=50
SEQ1_CHUNK=20000000
SEQ1_LAP=10000
# QUERY: Tarsier tarSyr1
SEQ2_DIR=/scratch/data/tarSyr1/tarSyr1.2bit
SEQ2_LEN=/scratch/data/tarSyr1/chrom.sizes
SEQ2_CHUNK=20000000
SEQ2_LIMIT=300
SEQ2_LAP=0
BASE=/hive/data/genomes/calJac3/bed/lastzTarSyr1.2010-02-21
TMPDIR=/scratch/tmp
TMPDIR=/scratch/tmp
'_EOF_'
# << this line keeps emacs coloring happy
time nice -n +19 doBlastzChainNet.pl \
`pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
> do.log 2>&1 &
cat fb.calJac3.chainTarSyr1Link.txt
# 1286219755 bases of 2752505800 (46.729%) in intersection
time doRecipBest.pl -workhorse=hgwdev -buildDir=`pwd` \
calJac3 tarSyr1 > rbest.log 2>&1 &
# real 532m
mkdir /hive/data/genomes/tarSyr1/bed/blastz.calJac3.swap
cd /hive/data/genomes/tarSyr1/bed/blastz.calJac3.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/calJac3/bed/lastzTarSyr1.2010-02-21/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
XXX - running Wed Feb 24 14:36:31 PST 2010
# real 120m42.991s
cat fb.tarSyr1.chainCalJac3Link.txt
# 2030475813 bases of 2752505800 (73.768%) in intersection
#####################################################################
# micMur1 Mouse lemur LASTZ/CHAIN/NET (DONE - 2010-02-17,22 - Hiram)
# Mouse lemur ( Microcebus murinus)
screen # use a screen to manage this multi-day job
mkdir /hive/data/genomes/calJac3/bed/lastzMicMur1.2010-02-17
cd /hive/data/genomes/calJac3/bed/lastzMicMur1.2010-02-17
cat << '_EOF_' > DEF
# mouse lemur vs. marmoset
# same paramters as human hg19 vs Mouse lemur micMur1
BLASTZ=lastz
# maximum M allowed with lastz is only 254
BLASTZ_M=254
# TARGET: Marmoset (calJac3)
SEQ1_DIR=/scratch/data/calJac3/calJac3.2bit
SEQ1_LEN=/scratch/data/calJac3/chrom.sizes
SEQ1_LIMIT=5
SEQ1_CHUNK=200000000
SEQ1_LAP=10000
# QUERY: Mouse lemur micMur1
SEQ2_DIR=/hive/data/genomes/micMur1/micMur1.2bit
SEQ2_LEN=/hive/data/genomes/micMur1/chrom.sizes
SEQ2_CHUNK=20000000
SEQ2_LIMIT=300
SEQ2_LAP=0
BASE=/hive/data/genomes/calJac3/bed/lastzMicMur1.2010-02-17
TMPDIR=/scratch/tmp
'_EOF_'
# << this line keeps emacs coloring happy
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
`pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
> do.log 2>&1 &
# real 5502m6.707s
# some kluster difficulties, finished cat run manually, then:
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
-continue=chainRun `pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
> chainRun.log 2>&1 &
# real 374m19.587s calJac3 micMur1 02-17
cat fb.calJac3.chainMicMur1Link.txt
# 1258616069 bases of 2752505800 (45.726%) in intersection
time doRecipBest.pl -buildDir=`pwd` calJac3 micMur1 > rbest.log 2>&1
# real 235m55.179s calJac3 micMur1
mkdir /hive/data/genomes/micMur1/bed/blastz.calJac3.swap
cd /hive/data/genomes/micMur1/bed/blastz.calJac3.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/calJac3/bed/lastzMicMur1.2010-02-17/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
# real 455m11.215s micMur1 calJac3 swap
cat fb.micMur1.chainCalJac3Link.txt
# 1243785262 bases of 1852394361 (67.145%) in intersection
#####################################################################
# otoGar1 Bushbaby LASTZ/CHAIN/NET (DONE - 2010-02-17,22 - Hiram)
screen # use a screen to manage this multi-day job
mkdir /hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-17
cd /hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-17
cat << '_EOF_' > DEF
# bushbaby vs. marmoset
# same paramters as human hg19 vs Bushbaby otoGar1
BLASTZ=lastz
# maximum M allowed with lastz is only 254
BLASTZ_M=254
# TARGET: Marmoset (calJac3)
SEQ1_DIR=/scratch/data/calJac3/calJac3.2bit
SEQ1_LEN=/scratch/data/calJac3/chrom.sizes
SEQ1_LIMIT=5
SEQ1_CHUNK=200000000
SEQ1_LAP=10000
# QUERY: Bushbaby otoGar1
SEQ2_DIR=/scratch/data/otoGar1/otoGar1.rmsk.2bit
SEQ2_LEN=/scratch/data/otoGar1/chrom.sizes
SEQ2_CHUNK=20000000
SEQ2_LIMIT=300
SEQ2_LAP=0
BASE=/hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-17
TMPDIR=/scratch/tmp
'_EOF_'
# << this line keeps emacs coloring happy
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
`pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
> do.log 2>&1 &
# real 4722m38.163s
# memk failed at the cat run, finish it manually, then, continuing:
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
-continue=chainRun `pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
> chainRun.log 2>&1 &
# real 285m58.314s
cat fb.calJac3.chainOtoGar1Link.txt
# 1176505967 bases of 2752505800 (42.743%) in intersection
time doRecipBest.pl -workhorse=hgwdev -buildDir=`pwd` \
calJac3 otoGar1 > rbest.log 2>&1 &
# real 332m14.375s calJac3 otoGar1
mkdir /hive/data/genomes/otoGar1/bed/blastz.calJac3.swap
cd /hive/data/genomes/otoGar1/bed/blastz.calJac3.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-17/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
# real 310m4.077s
cat fb.otoGar1.chainCalJac3Link.txt
# 1158531484 bases of 1969052059 (58.837%) in intersection
#####################################################################
## 8-Way Multiz (DONE - 2009-06-09,2009-11-10 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/multiz8way
cd /hive/data/genomes/calJac3/bed/multiz8way
/cluster/bin/phast/tree_doctor \
--prune-all-but=calJac1,hg19,panTro2,rheMac2,ponAbe2,mm9,canFam2,monDom5 \
--rename="calJac1 -> calJac3 " \
/hive/data/genomes/hg19/bed/multiz46way/fixedTree/46wayFixed.nh > 8way.nh
# *carefully* edit 8way.nh to get calJac3 at the top of this picture
# resulting in this tree:
(calJac3:0.066389,((rheMac2:0.057695,(ponAbe2:0.018342,
(hg19:0.006591,panTro2:0.006639):0.012126):0.014256):0.010000,
(mm9:0.352605,(canFam2:0.193569,monDom5:0.581923):0.020666)
:0.088210):0.000001);
# Use this specification in the phyloGif tool:
# http://genome.ucsc.edu/cgi-bin/phyloGif
# to obtain a gif image for htdocs/images/phylo/calJac3_8way.gif
/cluster/bin/phast/all_dists 8way.nh > 8way.distances.txt
# Use this output to create the table below, with this perl script:
cat << '_EOF_' > sizeStats.pl
#!/usr/bin/env perl
use strict;
use warnings;
open (FH, "grep -y calJac3 8way.distances.txt | sort -k3,3n|") or
die "can not read 8way.distances.txt";
my $count = 0;
while (my $line = <FH>) {
chomp $line;
my ($calJac3, $D, $dist) = split('\s+', $line);
my $chain = "chain" . ucfirst($D);
my $B="/hive/data/genomes/calJac3/bed/lastz.$D/fb.calJac3." .
$chain . "Link.txt";
my $chainLinkMeasure =
`awk '{print \$5}' ${B} 2> /dev/null | sed -e "s/(//; s/)//"`;
chomp $chainLinkMeasure;
$chainLinkMeasure = 0.0 if (length($chainLinkMeasure) < 1);
$chainLinkMeasure =~ s/\%//;
my $swapFile="/hive/data/genomes/${D}/bed/lastz.calJac3/fb.${D}.chainCalJac3Link.txt";
my $swapMeasure = "N/A";
if ( -s $swapFile ) {
$swapMeasure =
`awk '{print \$5}' ${swapFile} 2> /dev/null | sed -e "s/(//; s/)//"`;
chomp $swapMeasure;
$swapMeasure = 0.0 if (length($swapMeasure) < 1);
$swapMeasure =~ s/\%//;
}
my $orgName=
`hgsql -N -e "select organism from dbDb where name='$D';" hgcentraltest`;
chomp $orgName;
if (length($orgName) < 1) {
$orgName="N/A";
}
++$count;
if ($swapMeasure eq "N/A") {
printf "# %02d %.4f - %s %s\t(%% %.3f) (%s)\n", $count, $dist,
$orgName, $D, $chainLinkMeasure, $swapMeasure
} else {
printf "# %02d %.4f - %s %s\t(%% %.3f) (%% %.3f)\n", $count, $dist,
$orgName, $D, $chainLinkMeasure, $swapMeasure
}
}
close (FH);
'_EOF_'
# << happy emacs
chmod +x ./sizeStats.pl
./sizeStats.pl
#
# If you can fill in all the numbers in this table, you are ready for
# the multiple alignment procedure
#
# featureBits chainLink measures
# chainCalJac3Link
# distance on calJac3 on other
# 01 0.1090 - Orangutan ponAbe2 (% 71.893) (% 67.448)
# 02 0.1094 - Human hg19 (% 73.768) (% 70.654)
# 03 0.1094 - Chimp panTro2 (% 72.304) (% 69.302)
# 04 0.1341 - Rhesus rheMac2 (% 69.625) (% 70.711)
# 05 0.3688 - Dog canFam2 (% 50.766) (% 57.162)
# 06 0.5072 - Mouse mm9 (% 31.310) (% 32.815)
# 07 0.7572 - Opossum monDom5 (% 7.906) (% 6.174)
# create species list and stripped down tree for autoMZ
sed 's/[a-z][a-z]*_//g; s/:[0-9\.][0-9\.]*//g; s/;//; /^ *$/d' \
8way.nh > tmp.nh
echo `cat tmp.nh` > tree-commas.nh
echo `cat tree-commas.nh` | sed 's/ //g; s/,/ /g' > tree.nh
sed 's/[()]//g; s/,/ /g' tree.nh > species.list
# bash shell syntax here ...
mkdir -p mafLinks
H="/hive/data/genomes/calJac3/bed/"
for S in `sed -e "s/calJac3 //" species.list`
do
echo $S
ls -og ${H}/lastz.${S}/axtChain/calJac3.${S}.synNet.maf.gz
ln -s ${H}/lastz.${S}/axtChain/calJac3.${S}.synNet.maf.gz \
mafLinks/${S}.maf.gz
done
HERE=`pwd`
export HERE
PATH=${HERE}/penn:${PATH}
export PATH
rm -fr tmp
mkdir -p tmp
cd mafLinks
time ../penn/autoMZ + T=${HERE}/tmp \
E=calJac3 "`cat ../tree.nh`" *.sing.maf result.maf
# real 3584m8.094s
mkdir /gbdb/calJac3/multiz8way
ln -s `pwd`/mafLinks/result.maf /gbdb/calJac3/multiz8way/multiz8way.maf
cd /scratch/tmp
# Loaded 7475045 mafs in 1 files from /gbdb/calJac3/multiz8way
time nice -n +19 hgLoadMaf calJac3 multiz8way
time nice -n +19 hgLoadMafSummary -minSize=30000 -mergeGap=1500 \
-maxSize=200000 calJac3 multiz8waySummary multiz8way.maf
| hgLoadMafSummary calJac1 -minSize=30000 -mergeGap=1500 \
-maxSize=200000 multiz9waySummary stdin
# Created 1313222 summary blocks from 34128178 components
# and 7475045 mafs from multiz8way.maf
# real 8m36.016s
##############################################################################
# gorGor2 Bushbaby LASTZ/CHAIN/NET (DONE - 2010-02-22,24 - Hiram)
screen # use a screen to manage this multi-day job
mkdir /hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-22
cd /hive/data/genomes/calJac3/bed/lastzOtoGar1.2010-02-22
cat << '_EOF_' > DEF
# Gorilla vs. marmoset
# same paramters as human hg19 vs other nearby primates
# without all the extra blastz parameters
BLASTZ=lastz
# maximum M allowed with lastz is only 254
BLASTZ_M=254
# TARGET: Marmoset (calJac3)
SEQ1_DIR=/scratch/data/calJac3/calJac3.2bit
SEQ1_LEN=/scratch/data/calJac3/chrom.sizes
SEQ1_LIMIT=20
SEQ1_CHUNK=200000000
SEQ1_LAP=10000
# QUERY: Gorilla gorGor2
SEQ2_DIR=/scratch/data/gorGor2/gorGor2.2bit
SEQ2_LEN=/scratch/data/gorGor2/chrom.sizes
SEQ2_CHUNK=12000000
SEQ2_LIMIT=300
SEQ2_LAP=0
BASE=/hive/data/genomes/calJac3/bed/lastzGorGor2.2010-02-22
TMPDIR=/scratch/tmp
'_EOF_'
# << this line keeps emacs coloring happy
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
`pwd`/DEF \
-verbose=2 -syntenicNet -chainMinScore=3000 -chainLinearGap=medium \
-workhorse=hgwdev -smallClusterHub=memk -bigClusterHub=swarm \
> do.log 2>&1 &
# Elapsed time: 1956m3.678s
cat fb.calJac3.chainGorGor2Link.txt
# 2101356280 bases of 2752505800 (76.343%) in intersection
time doRecipBest.pl -workhorse=hgwdev -buildDir=`pwd` \
calJac3 gorGor2 > rbest.log 2>&1
# about 4h16m
mkdir /hive/data/genomes/gorGor2/bed/blastz.calJac3.swap
cd /hive/data/genomes/gorGor2/bed/blastz.calJac3.swap
time nice -n +19 doBlastzChainNet.pl -verbose=2 \
/hive/data/genomes/calJac3/bed/lastzGorGor2.2010-02-22/DEF \
-swap -syntenicNet \
-workhorse=hgwdev -smallClusterHub=pk -bigClusterHub=swarm \
-chainMinScore=3000 -chainLinearGap=medium > swap.log 2>&1 &
# real 250m57.089s
cat fb.gorGor2.chainCalJac3Link.txt
# 2135885920 bases of 2829687208 (75.481%) in intersection
#####################################################################
## 13-Way Multiz (DONE - 2010-02-23 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/multiz13way
cd /hive/data/genomes/calJac3/bed/multiz13way
/cluster/bin/phast/tree_doctor \
--prune-all-but=calJac1,hg19,panTro2,rheMac2,ponAbe2,gorGor1,micMur1,otoGar1,papHam1,tarSyr1,mm9,canFam2,monDom5 \
--rename="calJac1 -> calJac3 ; gorGor1 -> gorGor2 " \
/hive/data/genomes/hg19/bed/multiz46way/fixedTree/46wayFixed.nh > 13way.nh
# rearrange calJac3 to the top, get some help from tree_doctor:
/cluster/bin/phast/tree_doctor --name-ancestors --reroot calJac3 \
--with-branch 13way.nh
# edit out the ancestors, and move calJac3 from the bottom to
# the top, resulting in this tree:
(calJac3:0.066389,(((((hg19:0.006591,panTro2:0.006639):0.002184,
gorGor2:0.009411):0.009942,ponAbe2:0.018342):0.014256,
(rheMac2:0.036199,papHam1:0.040000):0.021496):0.010000,
((((monDom5:0.581923,canFam2:0.193569):0.020666,mm9:0.352605):0.019992,
(micMur1:0.091452,otoGar1:0.128984):0.035463):0.011307,
tarSyr1:0.135169):0.056911):0.000001);
# more rearranging after seeing what the distance table looks like
# below to get them appearing as much as possible in their
# distance order top to bottom:
(calJac3:0.066389,(((ponAbe2:0.018342,
((hg19:0.006591,panTro2:0.006639):0.002184,
gorGor2:0.009411):0.009942):0.014256,
(rheMac2:0.036199,papHam1:0.040000):0.021496):0.010000,
(tarSyr1:0.135169,((micMur1:0.091452,otoGar1:0.128984):0.035463,
(mm9:0.352605,
(canFam2:0.193569,monDom5:0.581923):0.020666):0.019992):0.011307):0.056911)
:0.000001);
# Use this specification in the phyloGif tool after changing the names:
/cluster/bin/phast/tree_doctor \
--rename="calJac3 -> Marmoset ; ponAbe2 -> Orangutan ; hg19 -> Human ; panTro2 -> Chimp ; gorGor2 -> Gorilla ; rheMac2 -> Rhesus ; papHam1 -> Baboon ; tarSyr1 -> Tarsier ; micMur1 -> Mouse_lemur ; otoGar1 -> Bushbaby ; canFam2 -> Dog ; mm9 -> Mouse ; monDom5 -> Opossum " 13way.nh
# http://genome.ucsc.edu/cgi-bin/phyloGif
# to obtain a gif image for htdocs/images/phylo/calJac3_13way.gif
/cluster/bin/phast/all_dists 13way.nh > 13way.distances.txt
# make sure all symlinks lastz.DB -> lastzDb-date
# exist here and at the swap locations, the perl script expects this
# in order to find featureBits numbers.
# Use 13way.distances.txt to create the table below
# with this perl script:
cat << '_EOF_' > sizeStats.pl
#!/usr/bin/env perl
use strict;
use warnings;
open (FH, "grep -y calJac3 13way.distances.txt | sort -k3,3n|") or
die "can not read 13way.distances.txt";
my $count = 0;
while (my $line = <FH>) {
chomp $line;
my ($calJac3, $D, $dist) = split('\s+', $line);
my $chain = "chain" . ucfirst($D);
my $B="/hive/data/genomes/calJac3/bed/lastz.$D/fb.calJac3." .
$chain . "Link.txt";
my $chainLinkMeasure =
`awk '{print \$5}' ${B} 2> /dev/null | sed -e "s/(//; s/)//"`;
chomp $chainLinkMeasure;
$chainLinkMeasure = 0.0 if (length($chainLinkMeasure) < 1);
$chainLinkMeasure =~ s/\%//;
my $swapFile="/hive/data/genomes/${D}/bed/lastz.calJac3/fb.${D}.chainCalJac3Link.txt";
my $swapMeasure = "N/A";
if ( -s $swapFile ) {
$swapMeasure =
`awk '{print \$5}' ${swapFile} 2> /dev/null | sed -e "s/(//; s/)//"`;
chomp $swapMeasure;
$swapMeasure = 0.0 if (length($swapMeasure) < 1);
$swapMeasure =~ s/\%//;
}
my $orgName=
`hgsql -N -e "select organism from dbDb where name='$D';" hgcentraltest`;
chomp $orgName;
if (length($orgName) < 1) {
$orgName="N/A";
}
++$count;
if ($swapMeasure eq "N/A") {
printf "# %02d %.4f - %s %s\t(%% %.3f) (%s)\n", $count, $dist,
$orgName, $D, $chainLinkMeasure, $swapMeasure
} else {
printf "# %02d %.4f - %s %s\t(%% %.3f) (%% %.3f)\n", $count, $dist,
$orgName, $D, $chainLinkMeasure, $swapMeasure
}
}
close (FH);
'_EOF_'
# << happy emacs
chmod +x ./sizeStats.pl
./sizeStats.pl
# 01 0.1090 - Orangutan ponAbe2 (% 71.893) (% 67.448)
# 02 0.1094 - Human hg19 (% 73.768) (% 70.654)
# 03 0.1094 - Chimp panTro2 (% 72.304) (% 69.302)
# 04 0.1100 - Gorilla gorGor2 (% 76.343) (% 75.481)
# 05 0.1341 - Rhesus rheMac2 (% 69.625) (% 70.711)
# 06 0.1379 - Baboon papHam1 (% 70.053) (% 69.607)
# 07 0.2585 - Tarsier tarSyr1 (% 46.729) (N/A)
# 08 0.2615 - Mouse lemur micMur1 (% 45.726) (% 67.145)
# 09 0.2991 - Bushbaby otoGar1 (% 42.743) (% 58.837)
# 10 0.3688 - Dog canFam2 (% 50.766) (% 57.162)
# 11 0.5072 - Mouse mm9 (% 31.310) (% 32.815)
# 12 0.7572 - Opossum monDom5 (% 7.906) (% 6.174)
# create species list and stripped down tree for autoMZ
sed 's/[a-z][a-z]*_//g; s/:[0-9\.][0-9\.]*//g; s/;//; /^ *$/d' \
13way.nh > tmp.nh
echo `cat tmp.nh` > tree-commas.nh
echo `cat tree-commas.nh` | sed 's/ //g; s/,/ /g' > tree.nh
sed 's/[()]//g; s/,/ /g' tree.nh > species.list
# collect the single whole mafs into one place for splitting:
mkdir singleMafs
cd singleMafs
ln -s ../../lastz.ponAbe2/axtChain/calJac3.ponAbe2.synNet.maf.gz .
ln -s ../../lastz.hg19/axtChain/calJac3.hg19.synNet.maf.gz .
ln -s ../../lastz.panTro2/axtChain/calJac3.panTro2.synNet.maf.gz .
ln -s ../../lastz.gorGor2/axtChain/calJac3.gorGor2.synNet.maf.gz .
ln -s ../../lastz.rheMac2/axtChain/calJac3.rheMac2.synNet.maf.gz .
ln -s ../../lastz.papHam1/mafRBestNet/calJac3.papHam1.rbest.maf.gz .
ln -s ../../lastz.tarSyr1/mafRBestNet/calJac3.tarSyr1.rbest.maf.gz .
ln -s ../../lastz.micMur1/mafRBestNet/calJac3.micMur1.rbest.maf.gz .
ln -s ../../lastz.otoGar1/mafRBestNet/calJac3.otoGar1.rbest.maf.gz .
ln -s ../../lastz.mm9/axtChain/calJac3.mm9.synNet.maf.gz .
ln -s ../../lastz.canFam2/axtChain/calJac3.canFam2.synNet.maf.gz .
ln -s ../../lastz.monDom5/axtChain/calJac3.monDom5.synNet.maf.gz .
mkdir /hive/data/genomes/calJac3/bed/multiz13way/splitMaf
cd /hive/data/genomes/calJac3/bed/multiz13way/splitMaf
for D in gorGor2 tarSyr1 papHam1 otoGar1 micMur1
do
mkdir ${D}
mafSplit -useHashedName=8 -byTarget /dev/null ${D}/ \
../singleMafs/calJac3.${D}.rbest.maf.gz
done
for D in ponAbe2 hg19 panTro2 rheMac2 mm9 canFam2 monDom5
do
mkdir ${D}
mafSplit -useHashedName=8 -byTarget /dev/null ${D}/ \
../singleMafs/calJac3.${D}.synNet.maf.gz
done
cd /hive/data/genomes/calJac3/bed/multiz13way
mkdir penn
cp -p /cluster/bin/penn/multiz.2008-11-25/multiz penn
cp -p /cluster/bin/penn/multiz.2008-11-25/maf_project penn
cp -p /cluster/bin/penn/multiz.2008-11-25/autoMZ penn
# set the db and pairs directories here
cat > autoMultiz.csh << '_EOF_'
#!/bin/csh -ef
set db = calJac3
set topDir = /hive/data/genomes/$db/bed/multiz13way
set c = $1
set result = $2
set pennBin = $topDir/penn
set run = `/bin/pwd`
set tmp = /scratch/tmp/$db/multiz.$c
set pairs = $topDir/splitMaf
/bin/rm -fr $tmp
/bin/mkdir -p $tmp
/bin/cp -p $topDir/tree.nh $topDir/species.list $tmp
pushd $tmp > /dev/null
foreach s (`/bin/sed -e "s/^$db //" species.list`)
set in = $pairs/$s/$c.maf
set out = $db.$s.sing.maf
if (-e $in.gz) then
/bin/zcat $in.gz > $out
if (! -s $out) then
echo "##maf version=1 scoring=autoMZ" > $out
endif
else if (-e $in) then
/bin/ln -s $in $out
else
echo "##maf version=1 scoring=autoMZ" > $out
endif
end
set path = ($pennBin $path); rehash
$pennBin/autoMZ + T=$tmp E=$db "`cat tree.nh`" $db.*.sing.maf $c.maf \
> /dev/null
popd > /dev/null
/bin/rm -f $result
/bin/cp -p $tmp/$c.maf $result
/bin/rm -fr $tmp
/bin/rmdir --ignore-fail-on-non-empty /scratch/tmp/$db
'_EOF_'
# << happy emacs
chmod +x autoMultiz.csh
cat << '_EOF_' > template
#LOOP
./autoMultiz.csh $(root1) {check out line+ /hive/data/genomes/calJac3/bed/multiz13way/run/maf/$(root1).maf}
#ENDLOOP
'_EOF_'
# << happy emacs
find ../splitMaf -type f | grep "/[0-9][0-9][0-9].maf" \
| xargs -L 1 basename | sort -u > chr.part.list
gensub2 chr.part.list single template jobList
mkdir maf
para -ram=8g create jobList
# put the split mafs back together into a single result
ssh hgwdev
cd /hive/data/genomes/calJac3/bed/multiz13way/run
head -q -n 1 maf/000.maf > calJac3.13way.maf
for F in maf/*.maf
do
grep -h -v "^#" ${F} >> calJac3.13way.maf
done
tail -q -n 1 maf/000.maf >> calJac3.13way.maf
# load tables for a look
mkdir -p /gbdb/calJac3/multiz13way/maf
cd /hive/data/genomes/calJac3/bed/multiz13way/run
ln -s `pwd`/calJac3.13way.maf \
/gbdb/calJac3/multiz13way/maf/multiz13way.maf
# this generates an immense multiz13way.tab file in the directory
# where it is running. Best to run this over in scratch.
cd /data/tmp
time nice -n +19 hgLoadMaf \
-pathPrefix=/gbdb/calJac3/multiz13way/maf calJac3 multiz13way
# Loading multiz13way into database
# Loaded 27583585 mafs in 257 files from /gbdb/calJac3/multiz13way/maf
# real 34m38.042s
# load summary table
time nice -n +19 cat /gbdb/calJac3/multiz13way/maf/*.maf \
| hgLoadMafSummary calJac3 -minSize=30000 -verbose=2 \
-mergeGap=1500 -maxSize=200000 multiz13waySummary stdin
# Created 4661062 summary blocks from 199318324 components
# and 27583585 mafs from stdin
# Loading into calJac3 table multiz13waySummary...
# Loading complete
# real 38m46.339s
# Gap Annotation
# prepare bed files with gap info
mkdir /hive/data/genomes/calJac3/bed/multiz13way/anno
cd /hive/data/genomes/calJac3/bed/multiz13way/anno
mkdir maf run
# most of these will already exist from previous multiple
# alignments
# remove the echo from in front of the twoBitInfo command to get
# them
# to run if this loop appears to be correct
for DB in `cat ../species.list`
do
CDIR="/hive/data/genomes/${DB}"
if [ ! -f ${CDIR}/${DB}.N.bed ]; then
echo "creating ${DB}.N.bed"
echo twoBitInfo -nBed ${CDIR}/${DB}.2bit ${CDIR}/${DB}.N.bed
else
ls -og ${CDIR}/${DB}.N.bed
fi
done
cd run
# rm -f nBeds sizes
for DB in `sed -e "s/calJac3 //" ../../species.list`
do
echo "${DB} "
ln -s /hive/data/genomes/${DB}/${DB}.N.bed ${DB}.bed
echo ${DB}.bed >> nBeds
ln -s /hive/data/genomes/${DB}/chrom.sizes ${DB}.len
echo ${DB}.len >> sizes
done
# the annotation step requires large memory, run on memk nodes
ssh memk
cd /hive/data/genomes/calJac3/bed/multiz13way/anno/run
ls ../../run/maf | sed -e "s/.maf//" > chr.list
cat << '_EOF_' > template
#LOOP
./anno.csh $(root1) {check out line+ ../maf/$(root1).maf}
#ENDLOOP
'_EOF_'
# << happy emacs
cat << '_EOF_' > anno.csh
#!/bin/csh -fe
set inMaf = ../../run/maf/$1.maf
set outMaf = ../maf/$1.maf
rm -f $outMaf
mafAddIRows -nBeds=nBeds $inMaf /hive/data/genomes/calJac3/calJac3.2bit $outMaf
'_EOF_'
# << happy emacs
chmod +x anno.csh
gensub2 chr.list single template jobList
para -ram=30g create jobList
# specify lots of ram to get one job per node
para -ram=30g push
#
# para check
# 256 jobs in batch
# 0 jobs (including everybody's) in Parasol queue or running.
# Checking finished jobs
# ...
# ranOk: 256
# total jobs in batch: 256
ssh hgwdev
rm -fr /gbdb/calJac3/multiz13way/maf
mkdir /gbdb/calJac3/multiz13way/maf
cd /hive/data/genomes/calJac3/bed/multiz13way/anno/maf
ln -s `pwd`/*.maf /gbdb/calJac3/multiz13way/maf/
# by loading this into the table multiz13way, it will replace the
# previously loaded table with the unannotated mafs
# huge temp files are made, do them on local disk
cd /data/tmp
time nice -n +19 hgLoadMaf \
-pathPrefix=/gbdb/calJac3/multiz13way/maf calJac3 multiz13way
# Loaded 14259674 mafs in 256 files from /gbdb/calJac3/multiz13way/maf
# real 15m41.804s
time nice -n +19 cat /gbdb/calJac3/multiz13way/maf/*.maf \
| hgLoadMafSummary calJac3 -minSize=30000 -mergeGap=1500 \
-maxSize=200000 multiz13waySummary stdin
# Indexing and tabulating stdin
# Created 2330531 summary blocks from 99659162 components
# and 14259674 mafs from stdin
# Loading into calJac3 table multiz13waySummary...
# Loading complete
# real 17m17.229s
# by loading this into the table multiz13waySummary, it will
# replace
# the previously loaded table with the unannotated mafs
# remove the multiz13way*.tab files in this /data/tmp directory
# -rw-rw-r-- 1 727501509 May 11 16:48 multiz13way.tab
# -rw-rw-r-- 1 113079736 May 12 08:57 multiz13waySummary.tab
wc -l multiz13way*.tab
# 14259674 multiz13way.tab
# 2330531 multiz13waySummary.tab
# 16590205 total
rm multiz13way*.tab
# create some downloads
mkdir -p /hive/data/genomes/calJac3/bed/multiz13way/download/maf
cd /hive/data/genomes/calJac3/bed/multiz13way/download/maf
time cp -p ../../anno/maf/*.maf .
# real 37m48.902s
time gzip --rsyncable *.maf
# real 64m55.554s
time md5sum *.gz > md5sum.txt
# real 2m41.707s
#####################################################################
# all.joiner update, downloads and in pushQ - (DONE - 2010-04-01 - Hiram)
cd $HOME/kent/src/hg/makeDb/schema
# fixup all.joiner until this is a clean output
joinerCheck -database=calJac3 -all all.joiner
mkdir /hive/data/genomes/calJac3/goldenPath
cd /hive/data/genomes/calJac3/goldenPath
time nice -n +19 makeDownloads.pl calJac3 > do.log 2>&1
# real 22m30.329s
# now ready for pushQ entry
mkdir /hive/data/genomes/calJac3/pushQ
cd /hive/data/genomes/calJac3/pushQ
time nice -n +19 makePushQSql.pl calJac3 > calJac3.pushQ.sql 2> stderr.out
real 2m52.193s
# check for errors in stderr.out, some are OK, e.g.:
# WARNING: calJac3 does not have seq
# WARNING: calJac3 does not have extFile
# WARNING: Could not tell (from trackDb, all.joiner and hardcoded lists of
# supporting and genbank tables) which tracks to assign these tables to:
# bosTau4ChainPileUp
# copy it to hgwbeta
scp -p calJac3.pushQ.sql hgwbeta:/tmp
ssh hgwbeta
cd /tmp
hgsql qapushq < calJac3.pushQ.sql
# in that pushQ entry walk through each entry and see if the
# sizes will set properly
############################################################################
# ctgPos2 track - showing clone sequence locations on chromosomes
# (DONE - 2010-04-01 - Hiram)
mkdir /hive/data/genomes/calJac3/bed/ctgPos2
cd /hive/data/genomes/calJac3/bed/ctgPos2
cat << '_EOF_' > agpToCtgPos2.pl
#!/usr/bin/env perl
use warnings;
use strict;
my $argc = scalar(@ARGV);
if ($argc != 1) {
printf STDERR "usage: zcat your.files.agp.gz | agpToCtgPos2.pl /dev/stdin > ctgPos2.tab\n";
exit 255;
}
my $agpFile = shift;
open (FH, "<$agpFile") or die "can not read $agpFile";
while (my $line = <FH>) {
next if ($line =~ m/^#/);
chomp $line;
my @a = split('\s+', $line);
next if ($a[4] =~ m/^N$/);
my $chrSize = $a[2]-$a[1]+1;
my $ctgSize = $a[7]-$a[6]+1;
die "sizes differ $chrSize != $ctgSize\n$line\n" if ($chrSize != $ctgSize);
printf "%s\t%d\t%s\t%d\t%d\t%s\n", $a[5], $chrSize, $a[0], $a[1]-1, $a[2], $a[4];
}
close (FH);
'_EOF_'
# << happy emacs
export S=../../genbank/Primary_Assembly/assembled_chromosomes/AGP
cut -f2 ${S}/chr2acc | while read ACC
do
C=`grep "${ACC}" ${S}/chr2acc | cut -f1`
zcat ${S}/AGP/chr${C}.agp.gz \
| sed -e "s/^${ACC}/chr${C}/"
done | ./agpToCtgPos2.pl /dev/stdin > ctgPos2.tab
hgLoadSqlTab calJac3 ctgPos2 $HOME/kent/src/hg/lib/ctgPos2.sql ctgPos2.tab
############################################################################
# N-SCAN gene predictions (nscanGene) - (2010-04-26 markd)
# obtained NSCAN predictions from michael brent's group
# at WUSTL
cd /cluster/data/calJac3/bed/nscan
wget -nv http://mblab.wustl.edu/predictions/marmoset/calJac3/readme.txt
wget -nv http://mblab.wustl.edu/predictions/marmoset/calJac3/calJac3.prot.fa
wget -nv http://mblab.wustl.edu/predictions/marmoset/calJac3/calJac3.gtf
gzip calJac3.*
chmod a-w *
# load track
gtfToGenePred -genePredExt calJac3.gtf.gz stdout | hgLoadGenePred -genePredExt calJac3 nscanGene stdin
hgPepPred calJac3 generic nscanPep calJac3.prot.fa.gz
rm *.tab
# marmoset/calJac3/trackDb.ra, add:
track nscanGene override
informant Marmoset N-SCAN used mouse (mm9) as the informant for conservation. PASA clustered human ESTs were mapped to the marmoset genome with the use of the human/marmoset synteny chain track. These remapped clusters were then filtered for splice sites, and used as the EST track on marmoset.
# veryify top-level search spec, should produce no results:
hgsql -Ne 'select name from nscanGene' calJac3 | egrep -v '^chr[0-9a-zA-Z_]+\.([0-9]+|pasa)((\.[0-9a-z]+)?\.[0-9a-z]+)?$' |head
############################################################################
# Fixing references to old calJac1 date to be to March 2009 - (2010-05-12 mary)
# trackDb
cd /cluster/home/mary/kent/src/hg/makeDb/trackDb/marmoset
find -name "*.html" | xargs grep 2007
# downloads
cd /usr/local/apache/htdocs/goldenPath/calJac3
-find -name "*" | xargs grep 2007
+find -name "README.txt" | xargs grep 2007
# hgcentral
hgsql hgcentraltest
update dbDb set description="March 2009 (WUGSC 3.2/calJac3)" where name="calJac3"