|
1 | 1 | #!/bin/bash
|
2 | 2 | #SBATCH -c 64
|
3 | 3 | #SBATCH -t 0
|
4 |
| -#SBATCH -p <insert partition here> |
| 4 | +#SBATCH -p eddy |
5 | 5 | #SBATCH --mem=64000
|
6 |
| -#SBATCH -o logs/rna3db_full_release_%j.out |
7 |
| -#SBATCH -e logs/rna3db_full_release_%j.err |
8 |
| -#SBATCH --mail-user=<insert email address here> |
| 6 | +#SBATCH -o logs/rna3db_incremental_release_%j.out |
| 7 | +#SBATCH -e logs/rna3db_incremental_release_%j.err |
| 8 | +#SBATCH --mail-user=marcellszikszai@fas.harvard.edu |
9 | 9 | #SBATCH --mail-type=ALL
|
10 | 10 |
|
11 |
| -# the output dir, along with the date of the last release |
12 |
| -OUTPUT_DIR="" |
13 |
| -PREVIOUS_RELEASE_DATE="2024-04-26" |
| 11 | +# where you want the release to be output to |
| 12 | +OUTPUT_DIR="/n/eddy_lab/users/mszikszai/rna3db/data/test_auto_release/output" |
| 13 | +# set where the latest release is located |
| 14 | +OLD_RELEASE=$OUTPUT_DIR/2024-05-14 |
14 | 15 |
|
15 | 16 | # you set these once and forget
|
16 |
| -RNA3DB_ROOT_DIR="" |
17 |
| -MMCIF_DIR="" |
18 |
| -CMSCAN="" |
19 |
| -CMDB="" |
| 17 | +RNA3DB_ROOT_DIR="/n/eddy_lab/users/mszikszai/rna3db/" |
| 18 | +PDB_MMCIF_DIR="/n/eddy_lab/users/mszikszai/rna3db/data/test_auto_release/new" |
| 19 | +CMSCAN="/n/eddy_lab/users/mszikszai/infernal/binaries/cmscan" |
| 20 | +CMDB="/n/eddy_lab/users/mszikszai/rna3db-scans/rfams/14.10/Rfam.cm" |
20 | 21 |
|
| 22 | +# set useful constants |
21 | 23 | NEW_RELEASE_DATE=$(date +"%Y-%m-%d")
|
22 |
| -mkdir -p $OUTPUT_DIR/$NEW_RELEASE_DATE |
| 24 | +JSON_PATH=$OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons |
| 25 | +MMCIF_PATH=$OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-mmcifs |
| 26 | +CMSCAN_PATH=$OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans |
| 27 | +FASTA_PATH=$OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-fastas |
| 28 | +UPLOAD_PATH=$OUTPUT_DIR/$NEW_RELEASE_DATE/uploads |
| 29 | + |
| 30 | +# make directories |
| 31 | +mkdir -p $JSON_PATH |
| 32 | +mkdir -p $MMCIF_PATH |
| 33 | +mkdir -p $CMSCAN_PATH |
| 34 | +mkdir -p $FASTA_PATH |
| 35 | +mkdir -p $UPLOAD_PATH |
23 | 36 |
|
24 | 37 | # prepare the env
|
25 | 38 | mamba activate rna3db
|
26 | 39 |
|
27 | 40 | # download latest mmCIF files
|
28 |
| -bash $RNA3DB_ROOT_DIR/scripts/download_pdb_mmcif.sh $MMCIF_DIR |
| 41 | +echo "Downloading..." |
| 42 | +#bash $RNA3DB_ROOT_DIR/scripts/download_pdb_mmcif.sh $PDB_MMCIF_DIR |
| 43 | +echo "Finished downloading." |
29 | 44 |
|
30 | 45 | # run parse
|
| 46 | +echo "Parsing..." |
31 | 47 | python -m rna3db parse \
|
32 |
| - $MMCIF_DIR \ |
33 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/parse.json |
| 48 | + $PDB_MMCIF_DIR \ |
| 49 | + $JSON_PATH/parse.json |
| 50 | +echo "Finished parsing." |
34 | 51 |
|
35 | 52 | # run filter
|
36 |
| -python -m rna3db filter $MMCIF_DIR $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/filter.json |
| 53 | +echo "Filtering..." |
| 54 | +python -m rna3db filter \ |
| 55 | + $JSON_PATH/parse.json \ |
| 56 | + $JSON_PATH/filter.json |
| 57 | +echo "Finished filtering." |
37 | 58 |
|
38 | 59 | # write only the new sequences to a FASTA file
|
| 60 | +echo "Building FASTA..." |
39 | 61 | python $RNA3DB_ROOT_DIR/scripts/build_incremental_release_fasta.py \
|
40 |
| - $OUTPUT_DIR/$OLD_RELEASE_DATE/rna3db-jsons/parse.json \ |
41 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/parse.json \ |
42 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.fasta |
43 |
| - |
44 |
| -# do cmscan on all new sequences |
45 |
| -CMSCAN --cpu 64 \ |
46 |
| - -o $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.o \ |
47 |
| - -tbl $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.tbl \ |
| 62 | + $OLD_RELEASE/rna3db-jsons/parse.json \ |
| 63 | + $JSON_PATH/parse.json \ |
| 64 | + $FASTA_PATH/$NEW_RELEASE_DATE.fasta |
| 65 | +echo "Finished building FASTA." |
| 66 | + |
| 67 | +echo "Copying old cmscans..." |
| 68 | +cp $OLD_RELEASE/rna3db-cmscans/*.tbl $CMSCAN_PATH/ |
| 69 | +cp $OLD_RELEASE/rna3db-cmscans/*.o $CMSCAN_PATH/ |
| 70 | +echo "Copied old cmscans." |
| 71 | + |
| 72 | +# do cmscan on new sequences |
| 73 | +echo "Running cmscan..." |
| 74 | +$CMSCAN --cpu 64 \ |
| 75 | + -o $CMSCAN_PATH/$NEW_RELEASE_DATE.o \ |
| 76 | + --tbl $CMSCAN_PATH/$NEW_RELEASE_DATE.tbl \ |
48 | 77 | $CMDB \
|
49 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.fasta |
| 78 | + $FASTA_PATH/$NEW_RELEASE_DATE.fasta |
| 79 | +echo "Finished cmscan." |
50 | 80 |
|
51 |
| -# find new sequences that did not get a hit |
| 81 | +# find sequences that did not get a hit |
| 82 | +echo "Finding sequences without hits..." |
52 | 83 | python $RNA3DB_ROOT_DIR/scripts/get_nohits.py \
|
53 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.fasta \ |
54 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE-nohits.fasta \ |
55 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/ |
56 |
| - |
57 |
| -# re-scan new sequences with --max that did not get a hit |
58 |
| -CMSCAN --max --cpu 64 \ |
59 |
| - -o $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE-nohits.o \ |
60 |
| - -tbl $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE-nohits.tbl \ |
| 84 | + $FASTA_PATH/$NEW_RELEASE_DATE.fasta \ |
| 85 | + $FASTA_PATH/$NEW_RELEASE_DATE-nohits.fasta \ |
| 86 | + $CMSCAN_PATH |
| 87 | +echo "Finished finding sequences." |
| 88 | + |
| 89 | +# re-scan sequences with --max that did not get a hit |
| 90 | +echo "Running cmscan (no hits)..." |
| 91 | +$CMSCAN --max --cpu 64 \ |
| 92 | + -o $CMSCAN_PATH/$NEW_RELEASE_DATE-nohits.o \ |
| 93 | + --tbl $CMSCAN_PATH/$NEW_RELEASE_DATE-nohits.tbl \ |
61 | 94 | $CMDB \
|
62 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/$NEW_RELEASE_DATE.fasta |
| 95 | + $FASTA_PATH/$NEW_RELEASE_DATE-nohits.fasta |
| 96 | +echo "Finished cmscan (no hits)." |
63 | 97 |
|
64 | 98 | # run cluster
|
| 99 | +echo "Clustering..." |
65 | 100 | python -m rna3db cluster \
|
66 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/filter.json \ |
67 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/cluster.json \ |
68 |
| - --tbl_dir $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans |
| 101 | + $JSON_PATH/filter.json \ |
| 102 | + $JSON_PATH/cluster.json \ |
| 103 | + --tbl_dir $CMSCAN_PATH |
| 104 | +echo "Cleaning up..." |
| 105 | +rm -r $JSON_PATH/mmseqs2_* |
| 106 | +echo "Finished clustering." |
69 | 107 |
|
70 | 108 | # run split
|
| 109 | +echo "Splitting..." |
71 | 110 | python -m rna3db split \
|
72 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/cluster.json \ |
73 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/split.json |
| 111 | + $JSON_PATH/cluster.json \ |
| 112 | + $JSON_PATH/split.json |
| 113 | +echo "Finished splitting." |
74 | 114 |
|
75 | 115 | # make mmCIFs
|
| 116 | +echo "Making mmCIFs..." |
76 | 117 | python scripts/json_to_mmcif.py \
|
77 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-jsons/split.json \ |
78 |
| - /Users/marcell/Documents/rna3db/data/pdb_mmcif/ \ |
79 |
| - $MMCIF_DIR \ |
80 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-mmcifs |
| 118 | + $JSON_PATH/split.json \ |
| 119 | + $PDB_MMCIF_DIR \ |
| 120 | + $MMCIF_PATH |
| 121 | +echo "Finished writing mmCIFs." |
81 | 122 |
|
82 | 123 | # compress files ready for release
|
83 |
| -tar -czvf \ |
84 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans.tar.gz \ |
85 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans |
86 |
| -tar -czvf \ |
87 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans.tar.gz \ |
88 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-cmscans |
89 |
| -tar -cfvJ \ |
90 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-mmcifs.tar.xz \ |
91 |
| - $OUTPUT_DIR/$NEW_RELEASE_DATE/rna3db-mmcifs |
| 124 | +echo "Compressing..." |
| 125 | +tar -czf \ |
| 126 | + $UPLOAD_PATH/rna3db-cmscans.tar.gz \ |
| 127 | + $CMSCAN_PATH |
| 128 | +tar -czf \ |
| 129 | + $UPLOAD_PATH/rna3db-jsons.tar.gz \ |
| 130 | + $JSON_PATH |
| 131 | +tar -cJf \ |
| 132 | + $UPLOAD_PATH/rna3db-mmcifs.tar.xz \ |
| 133 | + $MMCIF_PATH |
| 134 | + |
| 135 | +echo "Finished." |
| 136 | +echo $NEW_RELEASE_DATE "release ready for upload." |
| 137 | + |
0 commit comments