This notebook performs a simple NCBI BLASTn (Altschul et al. 1990) against two miRNA databases to attempt to identify miRNA in A.pulchra sRNAseq:

Relies on the following software:

  • fastx_toolkit

    • fastx_collapser: Collapses duplicate sequences in FastA/Q into single sequence.

1 Create a Bash variables file

This allows usage of Bash variables across R Markdown chunks.

{
echo "#### Assign Variables ####"
echo ""

echo "# Trimmed FastQ naming pattern"
echo "export trimmed_fastqs_pattern='*flexbar_trim.25bp*.fastq.gz'"

echo "# Data directories"
echo 'export deep_dive_dir=/home/shared/8TB_HDD_01/sam/gitrepos/deep-dive'
echo 'export deep_dive_data_dir="${deep_dive_dir}/data"'
echo 'export output_dir_top=${deep_dive_dir}/D-Apul/output/10-Apul-sRNAseq-BLASTn'
echo 'export trimmed_fastqs_dir="${deep_dive_dir}/D-Apul/output/08-Apul-sRNAseq-trimming/trimmed-reads"'
echo 'export blast_dbs_dir="${deep_dive_dir}/data/blast_dbs"'
echo ""

echo "# Input/Output files"
echo 'export collapsed_reads_fasta="collapsed-reads-all.fasta"'
echo 'export concatenated_trimmed_reads_fastq="concatenated-trimmed-reads-all.fastq.gz"'
echo 'export mirbase_mature_fasta_name="mirbase-mature-v22.1.fa"'
echo 'export mirbase_mature_fasta_no_U="mirbase-mature-v22.1-no_U.fa"'
echo 'export mirgene_mature_fasta_name="mirgene-mature-all-v2.1.fa"'
echo 'export mirgene_mature_fasta_no_U="mirgene-mature-all-v2.1-no_U.fa"'
echo ""

echo "# External data URLs"
echo 'export mirgenedb_fasta_url="https://www.mirgenedb.org/fasta/ALL?mat=1"'
echo ""

echo "# Paths to programs"
echo 'export ncbi_blast_dir="/home/shared/ncbi-blast-2.15.0+/bin/"'
echo 'export ncbi_blastn="${ncbi_blast_dir}/blastn"'
echo 'export ncbi_makeblast_db="${ncbi_blast_dir}/makeblastdb"'
echo 'export fastx_collapser="/home/shared/fastx_toolkit_0.0.13_binaries_Linux_2.6_amd64/bin/fastx_collapser"'

echo "# Set number of CPUs to use"
echo 'export threads=46'
echo ""

echo "# Initialize arrays"
echo 'export trimmed_fastqs_array=()'


} > .bashvars

cat .bashvars
#### Assign Variables ####

# Trimmed FastQ naming pattern
export trimmed_fastqs_pattern='*flexbar_trim.25bp*.fastq.gz'
# Data directories
export deep_dive_dir=/home/shared/8TB_HDD_01/sam/gitrepos/deep-dive
export deep_dive_data_dir="${deep_dive_dir}/data"
export output_dir_top=${deep_dive_dir}/D-Apul/output/10-Apul-sRNAseq-BLASTn
export trimmed_fastqs_dir="${deep_dive_dir}/D-Apul/output/08-Apul-sRNAseq-trimming/trimmed-reads"
export blast_dbs_dir="${deep_dive_dir}/data/blast_dbs"

# Input/Output files
export collapsed_reads_fasta="collapsed-reads-all.fasta"
export concatenated_trimmed_reads_fastq="concatenated-trimmed-reads-all.fastq.gz"
export mirbase_mature_fasta_name="mirbase-mature-v22.1.fa"
export mirbase_mature_fasta_no_U="mirbase-mature-v22.1-no_U.fa"
export mirgene_mature_fasta_name="mirgene-mature-all-v2.1.fa"
export mirgene_mature_fasta_no_U="mirgene-mature-all-v2.1-no_U.fa"

# External data URLs
export mirgenedb_fasta_url="https://www.mirgenedb.org/fasta/ALL?mat=1"

# Paths to programs
export ncbi_blast_dir="/home/shared/ncbi-blast-2.15.0+/bin/"
export ncbi_blastn="${ncbi_blast_dir}/blastn"
export ncbi_makeblast_db="${ncbi_blast_dir}/makeblastdb"
export fastx_collapser="/home/shared/fastx_toolkit_0.0.13_binaries_Linux_2.6_amd64/bin/fastx_collapser"
# Set number of CPUs to use
export threads=46

# Initialize arrays
export trimmed_fastqs_array=()

2 Download MirGeneDB Fasta

# Load bash variables into memory
source .bashvars

wget \
--no-check-certificate \
--continue \
--no-host-directories \
--no-directories \
--no-parent \
--quiet \
--execute robots=off \
--output-document ${deep_dive_data_dir}/${mirgene_mature_fasta_name} \
 ${mirgenedb_fasta_url}
 
 ls -lh ${deep_dive_data_dir}
total 13M
drwxr-xr-x 2 sam sam 4.0K Nov  7 14:36 blast_dbs
-rw-r--r-- 1 sam sam 3.7M Nov 15 21:30 mirbase-mature-v22.1.fa
-rw-r--r-- 1 sam sam 3.7M Nov 14 09:39 mirbase-mature-v22.1-no_spaces.fa
-rw-r--r-- 1 sam sam 3.7M Nov 17 07:59 mirbase-mature-v22.1-no_U.fa
-rw-r--r-- 1 sam sam 726K Nov  7 14:36 mirgene-mature-all-v2.1.fa
-rw-r--r-- 1 sam sam 726K Nov 17 07:59 mirgene-mature-all-v2.1-no_U.fa

2.1 Inspect miRNA FastAs

# Load bash variables into memory
source .bashvars

head "${deep_dive_data_dir}"/mir*.fa
==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1.fa <==
>cel-let-7-5p MIMAT0000001 Caenorhabditis elegans let-7-5p
UGAGGUAGUAGGUUGUAUAGUU
>cel-let-7-3p MIMAT0015091 Caenorhabditis elegans let-7-3p
CUAUGCAAUUUUCUACCUUACC
>cel-lin-4-5p MIMAT0000002 Caenorhabditis elegans lin-4-5p
UCCCUGAGACCUCAAGUGUGA
>cel-lin-4-3p MIMAT0015092 Caenorhabditis elegans lin-4-3p
ACACCUGGGCUCUCCGGGUACC
>cel-miR-1-5p MIMAT0020301 Caenorhabditis elegans miR-1-5p
CAUACUUCCUUACAUGCCCAUA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1-no_spaces.fa <==
>cel-let-7-5p_MIMAT0000001_Caenorhabditis_elegans_let-7-5p
UGAGGUAGUAGGUUGUAUAGUU
>cel-let-7-3p_MIMAT0015091_Caenorhabditis_elegans_let-7-3p
CUAUGCAAUUUUCUACCUUACC
>cel-lin-4-5p_MIMAT0000002_Caenorhabditis_elegans_lin-4-5p
UCCCUGAGACCUCAAGUGUGA
>cel-lin-4-3p_MIMAT0015092_Caenorhabditis_elegans_lin-4-3p
ACACCUGGGCUCUCCGGGUACC
>cel-miR-1-5p_MIMAT0020301_Caenorhabditis_elegans_miR-1-5p
CAUACUUCCUUACAUGCCCAUA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1-no_U.fa <==
>cel-let-7-5p MIMAT0000001 Caenorhabditis elegans let-7-5p
TGAGGTAGTAGGTTGTATAGTT
>cel-let-7-3p MIMAT0015091 Caenorhabditis elegans let-7-3p
CTATGCAATTTTCTACCTTACC
>cel-lin-4-5p MIMAT0000002 Caenorhabditis elegans lin-4-5p
TCCCTGAGACCTCAAGTGTGA
>cel-lin-4-3p MIMAT0015092 Caenorhabditis elegans lin-4-3p
ACACCTGGGCTCTCCGGGTACC
>cel-miR-1-5p MIMAT0020301 Caenorhabditis elegans miR-1-5p
CATACTTCCTTACATGCCCATA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirgene-mature-all-v2.1.fa <==
>Aae-Bantam_3p
UGAGAUCAUUUUGAAAGCUGAUU
>Bge-Bantam_3p
UGAGAUCAUUGUGAAAGCUGAUU
>Bpl-Bantam_3p
UGAGAUCAUUGUGAAAACUGAU
>Cgi-Bantam_3p
UGAGAUCAUUGUGAAAACUGAUU
>Cte-Bantam_3p
UGAGAUCAUUGUGAAAACUAAUC

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirgene-mature-all-v2.1-no_U.fa <==
>Aae-Bantam_3p
TGAGATCATTTTGAAAGCTGATT
>Bge-Bantam_3p
TGAGATCATTGTGAAAGCTGATT
>Bpl-Bantam_3p
TGAGATCATTGTGAAAACTGAT
>Cgi-Bantam_3p
TGAGATCATTGTGAAAACTGATT
>Cte-Bantam_3p
TGAGATCATTGTGAAAACTAATC

3 Convert U to T in miRNA FastAs

This is needed because the sRNAseq sequences do not have uracils (U) - they have thymines (T).

# Load bash variables into memory
source .bashvars

# Convert miRBase FastA
sed '/^[^>]/s/U/T/g' "${deep_dive_data_dir}/${mirbase_mature_fasta_name}" \
> "${deep_dive_data_dir}/${mirbase_mature_fasta_no_U}"

# Convert MirGene FastA
sed '/^[^>]/s/U/T/g' "${deep_dive_data_dir}/${mirgene_mature_fasta_name}" \
> "${deep_dive_data_dir}/${mirgene_mature_fasta_no_U}"

head ${deep_dive_data_dir}/*.fa
  
==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1.fa <==
>cel-let-7-5p MIMAT0000001 Caenorhabditis elegans let-7-5p
UGAGGUAGUAGGUUGUAUAGUU
>cel-let-7-3p MIMAT0015091 Caenorhabditis elegans let-7-3p
CUAUGCAAUUUUCUACCUUACC
>cel-lin-4-5p MIMAT0000002 Caenorhabditis elegans lin-4-5p
UCCCUGAGACCUCAAGUGUGA
>cel-lin-4-3p MIMAT0015092 Caenorhabditis elegans lin-4-3p
ACACCUGGGCUCUCCGGGUACC
>cel-miR-1-5p MIMAT0020301 Caenorhabditis elegans miR-1-5p
CAUACUUCCUUACAUGCCCAUA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1-no_spaces.fa <==
>cel-let-7-5p_MIMAT0000001_Caenorhabditis_elegans_let-7-5p
UGAGGUAGUAGGUUGUAUAGUU
>cel-let-7-3p_MIMAT0015091_Caenorhabditis_elegans_let-7-3p
CUAUGCAAUUUUCUACCUUACC
>cel-lin-4-5p_MIMAT0000002_Caenorhabditis_elegans_lin-4-5p
UCCCUGAGACCUCAAGUGUGA
>cel-lin-4-3p_MIMAT0015092_Caenorhabditis_elegans_lin-4-3p
ACACCUGGGCUCUCCGGGUACC
>cel-miR-1-5p_MIMAT0020301_Caenorhabditis_elegans_miR-1-5p
CAUACUUCCUUACAUGCCCAUA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirbase-mature-v22.1-no_U.fa <==
>cel-let-7-5p MIMAT0000001 Caenorhabditis elegans let-7-5p
TGAGGTAGTAGGTTGTATAGTT
>cel-let-7-3p MIMAT0015091 Caenorhabditis elegans let-7-3p
CTATGCAATTTTCTACCTTACC
>cel-lin-4-5p MIMAT0000002 Caenorhabditis elegans lin-4-5p
TCCCTGAGACCTCAAGTGTGA
>cel-lin-4-3p MIMAT0015092 Caenorhabditis elegans lin-4-3p
ACACCTGGGCTCTCCGGGTACC
>cel-miR-1-5p MIMAT0020301 Caenorhabditis elegans miR-1-5p
CATACTTCCTTACATGCCCATA

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirgene-mature-all-v2.1.fa <==
>Aae-Bantam_3p
UGAGAUCAUUUUGAAAGCUGAUU
>Bge-Bantam_3p
UGAGAUCAUUGUGAAAGCUGAUU
>Bpl-Bantam_3p
UGAGAUCAUUGUGAAAACUGAU
>Cgi-Bantam_3p
UGAGAUCAUUGUGAAAACUGAUU
>Cte-Bantam_3p
UGAGAUCAUUGUGAAAACUAAUC

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/data/mirgene-mature-all-v2.1-no_U.fa <==
>Aae-Bantam_3p
TGAGATCATTTTGAAAGCTGATT
>Bge-Bantam_3p
TGAGATCATTGTGAAAGCTGATT
>Bpl-Bantam_3p
TGAGATCATTGTGAAAACTGAT
>Cgi-Bantam_3p
TGAGATCATTGTGAAAACTGATT
>Cte-Bantam_3p
TGAGATCATTGTGAAAACTAATC

4 Create BLAST Databases

# Load bash variables into memory
source .bashvars



# miRBase BLAST DB
## Make sure output directory exists
if [ ! -d "${blast_dbs_dir}" ]; then
  mkdir --parents "${blast_dbs_dir}"
fi

## Check for pre-exising database
if [ ! -f "${blast_dbs_dir}/${mirgene_mature_fasta_no_U%.*}.blastdb.log" ]; then
  ${ncbi_makeblast_db} \
  -in ${deep_dive_data_dir}/${mirgene_mature_fasta_no_U} \
  -title ${mirgene_mature_fasta_no_U%.*} \
  -dbtype nucl \
  -out ${blast_dbs_dir}/${mirgene_mature_fasta_no_U%.*} \
  -logfile ${blast_dbs_dir}/${mirgene_mature_fasta_no_U%.*}.blastdb.log
fi

# miRBase BLAST DB
## Make sure output directory exists
if [ ! -d "${blast_dbs_dir}" ]; then
  mkdir --parents "${blast_dbs_dir}"
fi

## Check for pre-exising database
if [ ! -f "${blast_dbs_dir}/${mirbase_mature_fasta_no_U%.*}.blastdb.log" ]; then
  ${ncbi_makeblast_db} \
  -in ${deep_dive_data_dir}/${mirbase_mature_fasta_no_U} \
  -title ${mirbase_mature_fasta_no_U%.*} \
  -dbtype nucl \
  -out ${blast_dbs_dir}/${mirbase_mature_fasta_no_U%.*} \
  -logfile ${blast_dbs_dir}/${mirbase_mature_fasta_no_U%.*}.blastdb.log
fi

5 Prepare reads for BLASTing

5.1 Concatenate all trimmed reads

# Load bash variables into memory
source .bashvars

# Check for existence of concatenated FastA before running
if [ ! -f "${output_dir_top}/${concatenated_trimmed_reads_fastq}" ]; then
  cat ${trimmed_fastqs_dir}/*.fastq.gz \
  > "${output_dir_top}/${concatenated_trimmed_reads_fastq}"
fi

ls -lh "${output_dir_top}/${concatenated_trimmed_reads_fastq}"
-rw-r--r-- 1 sam sam 2.7G Nov  7 14:09 /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/concatenated-trimmed-reads-all.fastq.gz

5.2 Collapse reads to FastA

Uses fastx_collapser to collapse to unique reads.

Requires undocumented quality setting. Have selected 30 as cuttoff: -Q30.

# Load bash variables into memory
source .bashvars

# Check for existence of collapsed FastA before running
time \
if [ ! -f "${output_dir_top}/${collapsed_reads_fasta}" ]; then
  zcat ${output_dir_top}/${concatenated_trimmed_reads_fastq} \
  | ${fastx_collapser} \
  -Q30 \
  -o "${output_dir_top}/${collapsed_reads_fasta}"
fi

head "${output_dir_top}/${collapsed_reads_fasta}"

real    0m0.000s
user    0m0.000s
sys 0m0.000s
>1-5404223
GCACTGGTGGTTCAGTGGTAGAATT
>2-2739211
TCGGACTGTAGAACTCTGAACGTGT
>3-2687482
GGCGAGAATTCTACCACTGAACCAC
>4-2632527
GGAAGAGCACACGTCTGAACTCCAG
>5-2254991
GCACTGTGGTTCAGTGGTAGAATTC

6 Run BLASTn Default E-value

  • 1000 for blastn-short

Runs BLASTn using the blastn-short task for sequences < 30bp.

Look for top match (-max_hsps 1 & -max_target_seqs 1) for each query.

  • Suppress subsequent warning Examining 5 or more matches is recommended by redirecting stdout: 2> /dev/null

6.1 miRBase BLASTn Default e-value

# Load bash variables into memory
source .bashvars

time \
${ncbi_blastn} \
-db ${blast_dbs_dir}/${mirbase_mature_fasta_no_U%.*} \
-query ${output_dir_top}/${collapsed_reads_fasta} \
-out ${output_dir_top}/miRBase-BLASTn-eval_1000.outfmt6 \
-task blastn-short \
-max_hsps 1 \
-max_target_seqs 1 \
-outfmt 6 \
-num_threads ${threads} \
2> /dev/null

6.2 MirGene BLASTn Default e-value

# Load bash variables into memory
source .bashvars

time \
${ncbi_blastn} \
-db ${blast_dbs_dir}/${mirgene_mature_fasta_no_U%.*} \
-query ${output_dir_top}/${collapsed_reads_fasta} \
-out ${output_dir_top}/MirGene-BLASTn-eval_1000.outfmt6 \
-task blastn-short \
-max_hsps 1 \
-max_target_seqs 1 \
-outfmt 6 \
-num_threads ${threads} \
2> /dev/null

7 BLASTn E-value = 10

Running this for simple comparison to the defaul blastn-short value of 1000.

7.1 miRBase BLASTn e-value = 10

# Load bash variables into memory
source .bashvars

time \
${ncbi_blastn} \
-db ${blast_dbs_dir}/${mirbase_mature_fasta_no_U%.*} \
-query ${output_dir_top}/${collapsed_reads_fasta} \
-out ${output_dir_top}/miRBase-BLASTn-eval_10.outfmt6 \
-task blastn-short \
-evalue 10 \
-max_hsps 1 \
-max_target_seqs 1 \
-outfmt 6 \
-num_threads ${threads} \
2> /dev/null

7.2 MirGene BLASTn e-value = 10

# Load bash variables into memory
source .bashvars

time \
${ncbi_blastn} \
-db ${blast_dbs_dir}/${mirgene_mature_fasta_no_U%.*} \
-query ${output_dir_top}/${collapsed_reads_fasta} \
-out ${output_dir_top}/MirGene-BLASTn-eval_10.outfmt6 \
-task blastn-short \
-evalue 10 \
-max_hsps 1 \
-max_target_seqs 1 \
-outfmt 6 \
-num_threads ${threads} \
2> /dev/null

8 Results

8.1 Check BLASTn Default e-value results

# Load bash variables into memory
source .bashvars

head ${output_dir_top}/*eval_1000.outfmt6

echo ""
echo "-----------------------------------------"
echo ""

wc -l ${output_dir_top}/*eval_1000.outfmt6
==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/miRBase-BLASTn-eval_1000.outfmt6 <==
1-5404223   ppc-miR-8214-5p 100.000 13  0   0   12  24  18  6   0.092   26.3
2-2739211   hsa-miR-3168    100.000 13  0   0   4   16  13  1   0.092   26.3
3-2687482   ppc-miR-8214-5p 100.000 13  0   0   8   20  6   18  0.092   26.3
4-2632527   efu-miR-9230a   100.000 12  0   0   14  25  2   13  0.36    24.3
5-2254991   ppc-miR-8214-5p 100.000 13  0   0   11  23  18  6   0.092   26.3
6-2220700   ppc-miR-8214-5p 100.000 11  0   0   15  25  10  20  1.4 22.3
7-2187568   mdo-miR-12324a-3p   100.000 11  0   0   3   13  11  1   1.4 22.3
8-1457045   ppc-miR-8214-5p 100.000 13  0   0   8   20  6   18  0.092   26.3
9-1086004   ppy-miR-1255a   100.000 12  0   0   3   14  22  11  0.36    24.3
10-1079942  ppy-miR-1255a   100.000 12  0   0   12  23  11  22  0.36    24.3

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/MirGene-BLASTn-eval_1000.outfmt6 <==
1-5404223   Pma-Mir-96-P3o2_5p  100.000 10  0   0   16  25  9   18  2.2 20.3
2-2739211   Hme-Mir-2-P7_3p 100.000 11  0   0   9   19  19  9   0.54    22.3
3-2687482   Pma-Mir-96-P3o2_5p  100.000 11  0   0   6   16  19  9   0.54    22.3
4-2632527   Cbr-Mir-279-o10_5p  100.000 10  0   0   13  22  11  2   2.2 20.3
5-2254991   Pma-Mir-96-P3o2_5p  100.000 11  0   0   15  25  9   19  0.54    22.3
6-2220700   Sha-Novel-15_3p 100.000 10  0   0   5   14  12  21  2.2 20.3
7-2187568   Mdo-Mir-7398-P25_3p 100.000 10  0   0   15  24  10  1   2.2 20.3
8-1457045   Pma-Mir-96-P3o2_5p  100.000 11  0   0   6   16  19  9   0.54    22.3
9-1086004   Hsa-Mir-3611_3p 100.000 9   0   0   7   15  13  5   8.5 18.3
10-1079942  Hsa-Mir-3611_3p 100.000 9   0   0   11  19  5   13  8.5 18.3

-----------------------------------------

  19185356 /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/miRBase-BLASTn-eval_1000.outfmt6
  19185356 /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/MirGene-BLASTn-eval_1000.outfmt6
  38370712 total

8.2 Check BLASTn e-value = 10 results

# Load bash variables into memory
source .bashvars

head ${output_dir_top}/*eval_10.outfmt6

echo ""
echo "-----------------------------------------"
echo ""

wc -l ${output_dir_top}/*eval_10.outfmt6
==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/miRBase-BLASTn-eval_10.outfmt6 <==
1-5404223   ppc-miR-8214-5p 100.000 13  0   0   12  24  18  6   0.092   26.3
2-2739211   hsa-miR-3168    100.000 13  0   0   4   16  13  1   0.092   26.3
3-2687482   ppc-miR-8214-5p 100.000 13  0   0   8   20  6   18  0.092   26.3
4-2632527   efu-miR-9230a   100.000 12  0   0   14  25  2   13  0.36    24.3
5-2254991   ppc-miR-8214-5p 100.000 13  0   0   11  23  18  6   0.092   26.3
6-2220700   ppc-miR-8214-5p 100.000 11  0   0   15  25  10  20  1.4 22.3
7-2187568   mdo-miR-12324a-3p   100.000 11  0   0   3   13  11  1   1.4 22.3
8-1457045   ppc-miR-8214-5p 100.000 13  0   0   8   20  6   18  0.092   26.3
9-1086004   ppy-miR-1255a   100.000 12  0   0   3   14  22  11  0.36    24.3
10-1079942  ppy-miR-1255a   100.000 12  0   0   12  23  11  22  0.36    24.3

==> /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/MirGene-BLASTn-eval_10.outfmt6 <==
1-5404223   Pma-Mir-96-P3o2_5p  100.000 10  0   0   16  25  9   18  2.2 20.3
2-2739211   Hme-Mir-2-P7_3p 100.000 11  0   0   9   19  19  9   0.54    22.3
3-2687482   Pma-Mir-96-P3o2_5p  100.000 11  0   0   6   16  19  9   0.54    22.3
4-2632527   Cbr-Mir-279-o10_5p  100.000 10  0   0   13  22  11  2   2.2 20.3
5-2254991   Pma-Mir-96-P3o2_5p  100.000 11  0   0   15  25  9   19  0.54    22.3
6-2220700   Sha-Novel-15_3p 100.000 10  0   0   5   14  12  21  2.2 20.3
7-2187568   Mdo-Mir-7398-P25_3p 100.000 10  0   0   15  24  10  1   2.2 20.3
8-1457045   Pma-Mir-96-P3o2_5p  100.000 11  0   0   6   16  19  9   0.54    22.3
9-1086004   Hsa-Mir-3611_3p 100.000 9   0   0   7   15  13  5   8.5 18.3
10-1079942  Hsa-Mir-3611_3p 100.000 9   0   0   11  19  5   13  8.5 18.3

-----------------------------------------

  19120159 /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/miRBase-BLASTn-eval_10.outfmt6
  19037617 /home/shared/8TB_HDD_01/sam/gitrepos/deep-dive/D-Apul/output/10-Apul-sRNAseq-BLASTn/MirGene-BLASTn-eval_10.outfmt6
  38157776 total

The default e-value results in alignments for all query sequences, which is likely not what we’d expect.

Decreasing the e-value resulted in fewer queary alignments, as we’d expect.

For further analysis, we should probably discuss a reasonable e-value to use for filtering.


Citations

Altschul, Stephen F., Warren Gish, Webb Miller, Eugene W. Myers, and David J. Lipman. 1990. “Basic Local Alignment Search Tool.” Journal of Molecular Biology 215 (3): 403–10. https://doi.org/10.1016/s0022-2836(05)80360-2.
LS0tCnRpdGxlOiAiMTAtQXB1bC1zUk5Bc2VxLUJMQVNUbiIKYXV0aG9yOiAiU2FtIFdoaXRlIgpkYXRlOiAiMjAyMy0xMS0wMyIKb3V0cHV0OiAKICBib29rZG93bjo6aHRtbF9kb2N1bWVudDI6CiAgICB0aGVtZTogY29zbW8KICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICAgIGNvZGVfZm9sZGluZzogc2hvdwogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogIGdpdGh1Yl9kb2N1bWVudDoKICAgIHRvYzogdHJ1ZQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCiAgaHRtbF9kb2N1bWVudDoKICAgIHRoZW1lOiBjb3NtbwogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQogICAgY29kZV9mb2xkaW5nOiBzaG93CiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCmJpYmxpb2dyYXBoeTogcmVmZXJlbmNlcy5iaWIKbGluay1jaXRhdGlvbnM6IHRydWUKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KbGlicmFyeShrbml0cikKbGlicmFyeShrYWJsZUV4dHJhKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHJldGljdWxhdGUpCmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gVFJVRSwgICAgICAgICAjIERpc3BsYXkgY29kZSBjaHVua3MKICBldmFsID0gRkFMU0UsICAgICAgICAjIEV2YWx1YXRlIGNvZGUgY2h1bmtzCiAgd2FybmluZyA9IEZBTFNFLCAgICAgIyBIaWRlIHdhcm5pbmdzCiAgbWVzc2FnZSA9IEZBTFNFLCAgICAgIyBIaWRlIG1lc3NhZ2VzCiAgY29tbWVudCA9ICIiLCAgICAgICAgIyBQcmV2ZW50cyBhcHBlbmRpbmcgJyMjJyB0byBiZWdpbm5pbmcgb2YgbGluZXMgaW4gY29kZSBvdXRwdXQKICB3aWR0aCA9IDEwMDAgICAgICAgICAjIGFkZHMgc2Nyb2xsIGJhcgopCmBgYAoKClRoaXMgbm90ZWJvb2sgcGVyZm9ybXMgYSBzaW1wbGUgW05DQkkgQkxBU1RuXShodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L2Jvb2tzL05CSzI3OTY5MC8pIFtAYWx0c2NodWwxOTkwXSBhZ2FpbnN0IHR3byBtaVJOQSBkYXRhYmFzZXMgdG8gYXR0ZW1wdCB0byBpZGVudGlmeSBtaVJOQSBpbiBfQS5wdWxjaHJhXyBzUk5Bc2VxOgoKLSBbbWlSQmFzZV0oaHR0cHM6Ly9taXJiYXNlLm9yZy9kb3dubG9hZC8pCgotIFtNaXJHZW5lREJdKGh0dHBzOi8vd3d3Lm1pcmdlbmVkYi5vcmcvZG93bmxvYWQpCgpSZWxpZXMgb24gdGhlIGZvbGxvd2luZyBzb2Z0d2FyZToKICAKLSBbZmFzdHhfdG9vbGtpdF0oaHR0cDovL2hhbm5vbmxhYi5jc2hsLmVkdS9mYXN0eF90b29sa2l0LykKCiAgLSBgZmFzdHhfY29sbGFwc2VyYDogQ29sbGFwc2VzIGR1cGxpY2F0ZSBzZXF1ZW5jZXMgaW4gRmFzdEEvUSBpbnRvIHNpbmdsZSBzZXF1ZW5jZS4KCiMgQ3JlYXRlIGEgQmFzaCB2YXJpYWJsZXMgZmlsZQoKVGhpcyBhbGxvd3MgdXNhZ2Ugb2YgQmFzaCB2YXJpYWJsZXMgYWNyb3NzIFIgTWFya2Rvd24gY2h1bmtzLgoKYGBge3Igc2F2ZS1iYXNoLXZhcmlhYmxlcy10by1ydmFycy1maWxlLCBlbmdpbmU9J2Jhc2gnLCBldmFsPVRSVUV9CnsKZWNobyAiIyMjIyBBc3NpZ24gVmFyaWFibGVzICMjIyMiCmVjaG8gIiIKCmVjaG8gIiMgVHJpbW1lZCBGYXN0USBuYW1pbmcgcGF0dGVybiIKZWNobyAiZXhwb3J0IHRyaW1tZWRfZmFzdHFzX3BhdHRlcm49JypmbGV4YmFyX3RyaW0uMjVicCouZmFzdHEuZ3onIgoKZWNobyAiIyBEYXRhIGRpcmVjdG9yaWVzIgplY2hvICdleHBvcnQgZGVlcF9kaXZlX2Rpcj0vaG9tZS9zaGFyZWQvOFRCX0hERF8wMS9zYW0vZ2l0cmVwb3MvZGVlcC1kaXZlJwplY2hvICdleHBvcnQgZGVlcF9kaXZlX2RhdGFfZGlyPSIke2RlZXBfZGl2ZV9kaXJ9L2RhdGEiJwplY2hvICdleHBvcnQgb3V0cHV0X2Rpcl90b3A9JHtkZWVwX2RpdmVfZGlyfS9ELUFwdWwvb3V0cHV0LzEwLUFwdWwtc1JOQXNlcS1CTEFTVG4nCmVjaG8gJ2V4cG9ydCB0cmltbWVkX2Zhc3Rxc19kaXI9IiR7ZGVlcF9kaXZlX2Rpcn0vRC1BcHVsL291dHB1dC8wOC1BcHVsLXNSTkFzZXEtdHJpbW1pbmcvdHJpbW1lZC1yZWFkcyInCmVjaG8gJ2V4cG9ydCBibGFzdF9kYnNfZGlyPSIke2RlZXBfZGl2ZV9kaXJ9L2RhdGEvYmxhc3RfZGJzIicKZWNobyAiIgoKZWNobyAiIyBJbnB1dC9PdXRwdXQgZmlsZXMiCmVjaG8gJ2V4cG9ydCBjb2xsYXBzZWRfcmVhZHNfZmFzdGE9ImNvbGxhcHNlZC1yZWFkcy1hbGwuZmFzdGEiJwplY2hvICdleHBvcnQgY29uY2F0ZW5hdGVkX3RyaW1tZWRfcmVhZHNfZmFzdHE9ImNvbmNhdGVuYXRlZC10cmltbWVkLXJlYWRzLWFsbC5mYXN0cS5neiInCmVjaG8gJ2V4cG9ydCBtaXJiYXNlX21hdHVyZV9mYXN0YV9uYW1lPSJtaXJiYXNlLW1hdHVyZS12MjIuMS5mYSInCmVjaG8gJ2V4cG9ydCBtaXJiYXNlX21hdHVyZV9mYXN0YV9ub19VPSJtaXJiYXNlLW1hdHVyZS12MjIuMS1ub19VLmZhIicKZWNobyAnZXhwb3J0IG1pcmdlbmVfbWF0dXJlX2Zhc3RhX25hbWU9Im1pcmdlbmUtbWF0dXJlLWFsbC12Mi4xLmZhIicKZWNobyAnZXhwb3J0IG1pcmdlbmVfbWF0dXJlX2Zhc3RhX25vX1U9Im1pcmdlbmUtbWF0dXJlLWFsbC12Mi4xLW5vX1UuZmEiJwplY2hvICIiCgplY2hvICIjIEV4dGVybmFsIGRhdGEgVVJMcyIKZWNobyAnZXhwb3J0IG1pcmdlbmVkYl9mYXN0YV91cmw9Imh0dHBzOi8vd3d3Lm1pcmdlbmVkYi5vcmcvZmFzdGEvQUxMP21hdD0xIicKZWNobyAiIgoKZWNobyAiIyBQYXRocyB0byBwcm9ncmFtcyIKZWNobyAnZXhwb3J0IG5jYmlfYmxhc3RfZGlyPSIvaG9tZS9zaGFyZWQvbmNiaS1ibGFzdC0yLjE1LjArL2Jpbi8iJwplY2hvICdleHBvcnQgbmNiaV9ibGFzdG49IiR7bmNiaV9ibGFzdF9kaXJ9L2JsYXN0biInCmVjaG8gJ2V4cG9ydCBuY2JpX21ha2VibGFzdF9kYj0iJHtuY2JpX2JsYXN0X2Rpcn0vbWFrZWJsYXN0ZGIiJwplY2hvICdleHBvcnQgZmFzdHhfY29sbGFwc2VyPSIvaG9tZS9zaGFyZWQvZmFzdHhfdG9vbGtpdF8wLjAuMTNfYmluYXJpZXNfTGludXhfMi42X2FtZDY0L2Jpbi9mYXN0eF9jb2xsYXBzZXIiJwoKZWNobyAiIyBTZXQgbnVtYmVyIG9mIENQVXMgdG8gdXNlIgplY2hvICdleHBvcnQgdGhyZWFkcz00NicKZWNobyAiIgoKZWNobyAiIyBJbml0aWFsaXplIGFycmF5cyIKZWNobyAnZXhwb3J0IHRyaW1tZWRfZmFzdHFzX2FycmF5PSgpJwoKCn0gPiAuYmFzaHZhcnMKCmNhdCAuYmFzaHZhcnMKYGBgCgoKIyBEb3dubG9hZCBNaXJHZW5lREIgRmFzdGEKYGBge3IgZG93bmxvYWQtbWlyZ2VuZS1kYi1GYXN0QSwgZW5naW5lPSdiYXNoJywgZXZhbD1UUlVFfQojIExvYWQgYmFzaCB2YXJpYWJsZXMgaW50byBtZW1vcnkKc291cmNlIC5iYXNodmFycwoKd2dldCBcCi0tbm8tY2hlY2stY2VydGlmaWNhdGUgXAotLWNvbnRpbnVlIFwKLS1uby1ob3N0LWRpcmVjdG9yaWVzIFwKLS1uby1kaXJlY3RvcmllcyBcCi0tbm8tcGFyZW50IFwKLS1xdWlldCBcCi0tZXhlY3V0ZSByb2JvdHM9b2ZmIFwKLS1vdXRwdXQtZG9jdW1lbnQgJHtkZWVwX2RpdmVfZGF0YV9kaXJ9LyR7bWlyZ2VuZV9tYXR1cmVfZmFzdGFfbmFtZX0gXAogJHttaXJnZW5lZGJfZmFzdGFfdXJsfQogCiBscyAtbGggJHtkZWVwX2RpdmVfZGF0YV9kaXJ9CmBgYAoKIyMgSW5zcGVjdCBtaVJOQSBGYXN0QXMKYGBge3IgaW5zcGVjdC1taVJOQS1GYXN0QXMsIGVuZ2luZT0nYmFzaCcsIGV2YWw9VFJVRX0KIyBMb2FkIGJhc2ggdmFyaWFibGVzIGludG8gbWVtb3J5CnNvdXJjZSAuYmFzaHZhcnMKCmhlYWQgIiR7ZGVlcF9kaXZlX2RhdGFfZGlyfSIvbWlyKi5mYQpgYGAKCgojIENvbnZlcnQgYFVgIHRvIGBUYCBpbiBtaVJOQSBGYXN0QXMKClRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIHNSTkFzZXEgc2VxdWVuY2VzIGRvIF9ub3RfIGhhdmUgdXJhY2lscyAoYFVgKSAtIHRoZXkgaGF2ZSB0aHltaW5lcyAoYFRgKS4KCmBgYHtyIGNvbnZlcnQtVS10by1ULCBlbmdpbmU9J2Jhc2gnLCBldmFsPVRSVUV9CiMgTG9hZCBiYXNoIHZhcmlhYmxlcyBpbnRvIG1lbW9yeQpzb3VyY2UgLmJhc2h2YXJzCgojIENvbnZlcnQgbWlSQmFzZSBGYXN0QQpzZWQgJy9eW14+XS9zL1UvVC9nJyAiJHtkZWVwX2RpdmVfZGF0YV9kaXJ9LyR7bWlyYmFzZV9tYXR1cmVfZmFzdGFfbmFtZX0iIFwKPiAiJHtkZWVwX2RpdmVfZGF0YV9kaXJ9LyR7bWlyYmFzZV9tYXR1cmVfZmFzdGFfbm9fVX0iCgojIENvbnZlcnQgTWlyR2VuZSBGYXN0QQpzZWQgJy9eW14+XS9zL1UvVC9nJyAiJHtkZWVwX2RpdmVfZGF0YV9kaXJ9LyR7bWlyZ2VuZV9tYXR1cmVfZmFzdGFfbmFtZX0iIFwKPiAiJHtkZWVwX2RpdmVfZGF0YV9kaXJ9LyR7bWlyZ2VuZV9tYXR1cmVfZmFzdGFfbm9fVX0iCgpoZWFkICR7ZGVlcF9kaXZlX2RhdGFfZGlyfS8qLmZhCiAgCmBgYAoKIyBDcmVhdGUgQkxBU1QgRGF0YWJhc2VzCmBgYHtyIG1ha2UtYmxhc3QtZGJzLCBlbmdpbmU9J2Jhc2gnLCBldmFsPVRSVUV9CiMgTG9hZCBiYXNoIHZhcmlhYmxlcyBpbnRvIG1lbW9yeQpzb3VyY2UgLmJhc2h2YXJzCgoKCiMgbWlSQmFzZSBCTEFTVCBEQgojIyBNYWtlIHN1cmUgb3V0cHV0IGRpcmVjdG9yeSBleGlzdHMKaWYgWyAhIC1kICIke2JsYXN0X2Ric19kaXJ9IiBdOyB0aGVuCiAgbWtkaXIgLS1wYXJlbnRzICIke2JsYXN0X2Ric19kaXJ9IgpmaQoKIyMgQ2hlY2sgZm9yIHByZS1leGlzaW5nIGRhdGFiYXNlCmlmIFsgISAtZiAiJHtibGFzdF9kYnNfZGlyfS8ke21pcmdlbmVfbWF0dXJlX2Zhc3RhX25vX1UlLip9LmJsYXN0ZGIubG9nIiBdOyB0aGVuCiAgJHtuY2JpX21ha2VibGFzdF9kYn0gXAogIC1pbiAke2RlZXBfZGl2ZV9kYXRhX2Rpcn0vJHttaXJnZW5lX21hdHVyZV9mYXN0YV9ub19VfSBcCiAgLXRpdGxlICR7bWlyZ2VuZV9tYXR1cmVfZmFzdGFfbm9fVSUuKn0gXAogIC1kYnR5cGUgbnVjbCBcCiAgLW91dCAke2JsYXN0X2Ric19kaXJ9LyR7bWlyZ2VuZV9tYXR1cmVfZmFzdGFfbm9fVSUuKn0gXAogIC1sb2dmaWxlICR7Ymxhc3RfZGJzX2Rpcn0vJHttaXJnZW5lX21hdHVyZV9mYXN0YV9ub19VJS4qfS5ibGFzdGRiLmxvZwpmaQoKIyBtaVJCYXNlIEJMQVNUIERCCiMjIE1ha2Ugc3VyZSBvdXRwdXQgZGlyZWN0b3J5IGV4aXN0cwppZiBbICEgLWQgIiR7Ymxhc3RfZGJzX2Rpcn0iIF07IHRoZW4KICBta2RpciAtLXBhcmVudHMgIiR7Ymxhc3RfZGJzX2Rpcn0iCmZpCgojIyBDaGVjayBmb3IgcHJlLWV4aXNpbmcgZGF0YWJhc2UKaWYgWyAhIC1mICIke2JsYXN0X2Ric19kaXJ9LyR7bWlyYmFzZV9tYXR1cmVfZmFzdGFfbm9fVSUuKn0uYmxhc3RkYi5sb2ciIF07IHRoZW4KICAke25jYmlfbWFrZWJsYXN0X2RifSBcCiAgLWluICR7ZGVlcF9kaXZlX2RhdGFfZGlyfS8ke21pcmJhc2VfbWF0dXJlX2Zhc3RhX25vX1V9IFwKICAtdGl0bGUgJHttaXJiYXNlX21hdHVyZV9mYXN0YV9ub19VJS4qfSBcCiAgLWRidHlwZSBudWNsIFwKICAtb3V0ICR7Ymxhc3RfZGJzX2Rpcn0vJHttaXJiYXNlX21hdHVyZV9mYXN0YV9ub19VJS4qfSBcCiAgLWxvZ2ZpbGUgJHtibGFzdF9kYnNfZGlyfS8ke21pcmJhc2VfbWF0dXJlX2Zhc3RhX25vX1UlLip9LmJsYXN0ZGIubG9nCmZpCmBgYAoKCiMgUHJlcGFyZSByZWFkcyBmb3IgQkxBU1RpbmcKCiMjIENvbmNhdGVuYXRlIGFsbCB0cmltbWVkIHJlYWRzCmBgYHtyIGNvbmNhdGVuYXRlLXRyaW1tZWQtcmVhZHMsIGVuZ2luZT0nYmFzaCcsIGV2YWw9VFJVRX0KIyBMb2FkIGJhc2ggdmFyaWFibGVzIGludG8gbWVtb3J5CnNvdXJjZSAuYmFzaHZhcnMKCiMgQ2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBjb25jYXRlbmF0ZWQgRmFzdEEgYmVmb3JlIHJ1bm5pbmcKaWYgWyAhIC1mICIke291dHB1dF9kaXJfdG9wfS8ke2NvbmNhdGVuYXRlZF90cmltbWVkX3JlYWRzX2Zhc3RxfSIgXTsgdGhlbgogIGNhdCAke3RyaW1tZWRfZmFzdHFzX2Rpcn0vKi5mYXN0cS5neiBcCiAgPiAiJHtvdXRwdXRfZGlyX3RvcH0vJHtjb25jYXRlbmF0ZWRfdHJpbW1lZF9yZWFkc19mYXN0cX0iCmZpCgpscyAtbGggIiR7b3V0cHV0X2Rpcl90b3B9LyR7Y29uY2F0ZW5hdGVkX3RyaW1tZWRfcmVhZHNfZmFzdHF9IgpgYGAKCiMjIENvbGxhcHNlIHJlYWRzIHRvIEZhc3RBCgpVc2VzIGBmYXN0eF9jb2xsYXBzZXJgIHRvIGNvbGxhcHNlIHRvIHVuaXF1ZSByZWFkcy4KClJlcXVpcmVzIHVuZG9jdW1lbnRlZCBxdWFsaXR5IHNldHRpbmcuIEhhdmUgc2VsZWN0ZWQgYDMwYCBhcyBjdXR0b2ZmOiBgLVEzMGAuCmBgYHtyIGNvbGxhcHNlLXJlYWRzLXRvLUZhc3RBLCBlbmdpbmU9J2Jhc2gnLCBldmFsPVRSVUV9CiMgTG9hZCBiYXNoIHZhcmlhYmxlcyBpbnRvIG1lbW9yeQpzb3VyY2UgLmJhc2h2YXJzCgojIENoZWNrIGZvciBleGlzdGVuY2Ugb2YgY29sbGFwc2VkIEZhc3RBIGJlZm9yZSBydW5uaW5nCnRpbWUgXAppZiBbICEgLWYgIiR7b3V0cHV0X2Rpcl90b3B9LyR7Y29sbGFwc2VkX3JlYWRzX2Zhc3RhfSIgXTsgdGhlbgogIHpjYXQgJHtvdXRwdXRfZGlyX3RvcH0vJHtjb25jYXRlbmF0ZWRfdHJpbW1lZF9yZWFkc19mYXN0cX0gXAogIHwgJHtmYXN0eF9jb2xsYXBzZXJ9IFwKICAtUTMwIFwKICAtbyAiJHtvdXRwdXRfZGlyX3RvcH0vJHtjb2xsYXBzZWRfcmVhZHNfZmFzdGF9IgpmaQoKaGVhZCAiJHtvdXRwdXRfZGlyX3RvcH0vJHtjb2xsYXBzZWRfcmVhZHNfZmFzdGF9IgpgYGAKCiMgUnVuIEJMQVNUbiBEZWZhdWx0IEUtdmFsdWUKCi0gMTAwMCBmb3IgYmxhc3RuLXNob3J0CgpSdW5zIEJMQVNUbiB1c2luZyB0aGUgYGJsYXN0bi1zaG9ydGAgdGFzayBmb3Igc2VxdWVuY2VzIDwgMzBicC4KCkxvb2sgZm9yIHRvcCBtYXRjaCAoYC1tYXhfaHNwcyAxYCAmIGAtbWF4X3RhcmdldF9zZXFzIDFgKSBmb3IgZWFjaCBxdWVyeS4KCiAgLSBTdXBwcmVzcyBzdWJzZXF1ZW50IHdhcm5pbmcgYEV4YW1pbmluZyA1IG9yIG1vcmUgbWF0Y2hlcyBpcyByZWNvbW1lbmRlZGAgYnkKICByZWRpcmVjdGluZyBzdGRvdXQ6IGAyPiAvZGV2L251bGxgCgojIyBtaVJCYXNlIEJMQVNUbiBEZWZhdWx0IGUtdmFsdWUKYGBge3IgbWlSQmFzZS1CTEFTVG4tZGVmYXVsdC1ldmFsLCBlbmdpbmU9J2Jhc2gnLCBjYWNoZT1UUlVFfQojIExvYWQgYmFzaCB2YXJpYWJsZXMgaW50byBtZW1vcnkKc291cmNlIC5iYXNodmFycwoKdGltZSBcCiR7bmNiaV9ibGFzdG59IFwKLWRiICR7Ymxhc3RfZGJzX2Rpcn0vJHttaXJiYXNlX21hdHVyZV9mYXN0YV9ub19VJS4qfSBcCi1xdWVyeSAke291dHB1dF9kaXJfdG9wfS8ke2NvbGxhcHNlZF9yZWFkc19mYXN0YX0gXAotb3V0ICR7b3V0cHV0X2Rpcl90b3B9L21pUkJhc2UtQkxBU1RuLWV2YWxfMTAwMC5vdXRmbXQ2IFwKLXRhc2sgYmxhc3RuLXNob3J0IFwKLW1heF9oc3BzIDEgXAotbWF4X3RhcmdldF9zZXFzIDEgXAotb3V0Zm10IDYgXAotbnVtX3RocmVhZHMgJHt0aHJlYWRzfSBcCjI+IC9kZXYvbnVsbApgYGAKCiMjIE1pckdlbmUgQkxBU1RuIERlZmF1bHQgZS12YWx1ZQoKYGBge3IgTWlyR2VuZS1CTEFTVG4tZGVmYXVsdC1ldmFsLCBlbmdpbmU9J2Jhc2gnLCBjYWNoZT1UUlVFfQojIExvYWQgYmFzaCB2YXJpYWJsZXMgaW50byBtZW1vcnkKc291cmNlIC5iYXNodmFycwoKdGltZSBcCiR7bmNiaV9ibGFzdG59IFwKLWRiICR7Ymxhc3RfZGJzX2Rpcn0vJHttaXJnZW5lX21hdHVyZV9mYXN0YV9ub19VJS4qfSBcCi1xdWVyeSAke291dHB1dF9kaXJfdG9wfS8ke2NvbGxhcHNlZF9yZWFkc19mYXN0YX0gXAotb3V0ICR7b3V0cHV0X2Rpcl90b3B9L01pckdlbmUtQkxBU1RuLWV2YWxfMTAwMC5vdXRmbXQ2IFwKLXRhc2sgYmxhc3RuLXNob3J0IFwKLW1heF9oc3BzIDEgXAotbWF4X3RhcmdldF9zZXFzIDEgXAotb3V0Zm10IDYgXAotbnVtX3RocmVhZHMgJHt0aHJlYWRzfSBcCjI+IC9kZXYvbnVsbApgYGAKCgojIEJMQVNUbiBFLXZhbHVlID0gMTAKClJ1bm5pbmcgdGhpcyBmb3Igc2ltcGxlIGNvbXBhcmlzb24gdG8gdGhlIGRlZmF1bCBgYmxhc3RuLXNob3J0YCB2YWx1ZSBvZiAxMDAwLgoKIyMgbWlSQmFzZSBCTEFTVG4gZS12YWx1ZSA9IDEwCmBgYHtyIG1pUkJhc2UtQkxBU1RuLTEwLWV2YWwsIGVuZ2luZT0nYmFzaCcsIGNhY2hlPVRSVUV9CiMgTG9hZCBiYXNoIHZhcmlhYmxlcyBpbnRvIG1lbW9yeQpzb3VyY2UgLmJhc2h2YXJzCgp0aW1lIFwKJHtuY2JpX2JsYXN0bn0gXAotZGIgJHtibGFzdF9kYnNfZGlyfS8ke21pcmJhc2VfbWF0dXJlX2Zhc3RhX25vX1UlLip9IFwKLXF1ZXJ5ICR7b3V0cHV0X2Rpcl90b3B9LyR7Y29sbGFwc2VkX3JlYWRzX2Zhc3RhfSBcCi1vdXQgJHtvdXRwdXRfZGlyX3RvcH0vbWlSQmFzZS1CTEFTVG4tZXZhbF8xMC5vdXRmbXQ2IFwKLXRhc2sgYmxhc3RuLXNob3J0IFwKLWV2YWx1ZSAxMCBcCi1tYXhfaHNwcyAxIFwKLW1heF90YXJnZXRfc2VxcyAxIFwKLW91dGZtdCA2IFwKLW51bV90aHJlYWRzICR7dGhyZWFkc30gXAoyPiAvZGV2L251bGwKYGBgCgojIyBNaXJHZW5lIEJMQVNUbiBlLXZhbHVlID0gMTAKCmBgYHtyIE1pckdlbmUtQkxBU1RuLTEwLWV2YWwsIGVuZ2luZT0nYmFzaCcsIGNhY2hlPVRSVUV9CiMgTG9hZCBiYXNoIHZhcmlhYmxlcyBpbnRvIG1lbW9yeQpzb3VyY2UgLmJhc2h2YXJzCgp0aW1lIFwKJHtuY2JpX2JsYXN0bn0gXAotZGIgJHtibGFzdF9kYnNfZGlyfS8ke21pcmdlbmVfbWF0dXJlX2Zhc3RhX25vX1UlLip9IFwKLXF1ZXJ5ICR7b3V0cHV0X2Rpcl90b3B9LyR7Y29sbGFwc2VkX3JlYWRzX2Zhc3RhfSBcCi1vdXQgJHtvdXRwdXRfZGlyX3RvcH0vTWlyR2VuZS1CTEFTVG4tZXZhbF8xMC5vdXRmbXQ2IFwKLXRhc2sgYmxhc3RuLXNob3J0IFwKLWV2YWx1ZSAxMCBcCi1tYXhfaHNwcyAxIFwKLW1heF90YXJnZXRfc2VxcyAxIFwKLW91dGZtdCA2IFwKLW51bV90aHJlYWRzICR7dGhyZWFkc30gXAoyPiAvZGV2L251bGwKYGBgCgojIFJlc3VsdHMKCiMjIENoZWNrIEJMQVNUbiBEZWZhdWx0IGUtdmFsdWUgcmVzdWx0cwpgYGB7ciBibGFzdG4tZGVmYXVsdC1ldmFsdWUtcmVzdWx0cywgZW5naW5lPSdiYXNoJywgZXZhbD1UUlVFfQojIExvYWQgYmFzaCB2YXJpYWJsZXMgaW50byBtZW1vcnkKc291cmNlIC5iYXNodmFycwoKaGVhZCAke291dHB1dF9kaXJfdG9wfS8qZXZhbF8xMDAwLm91dGZtdDYKCmVjaG8gIiIKZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCmVjaG8gIiIKCndjIC1sICR7b3V0cHV0X2Rpcl90b3B9LypldmFsXzEwMDAub3V0Zm10NgpgYGAKCiMjIENoZWNrIEJMQVNUbiBlLXZhbHVlID0gMTAgcmVzdWx0cwpgYGB7ciBibGFzdG4tMTAtZXZhbHVlLXJlc3VsdHMsIGVuZ2luZT0nYmFzaCcsIGV2YWw9VFJVRX0KIyBMb2FkIGJhc2ggdmFyaWFibGVzIGludG8gbWVtb3J5CnNvdXJjZSAuYmFzaHZhcnMKCmhlYWQgJHtvdXRwdXRfZGlyX3RvcH0vKmV2YWxfMTAub3V0Zm10NgoKZWNobyAiIgplY2hvICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKZWNobyAiIgoKd2MgLWwgJHtvdXRwdXRfZGlyX3RvcH0vKmV2YWxfMTAub3V0Zm10NgpgYGAKClRoZSBkZWZhdWx0IGUtdmFsdWUgcmVzdWx0cyBpbiBhbGlnbm1lbnRzIGZvciBhbGwgcXVlcnkgc2VxdWVuY2VzLCB3aGljaCBpcyBsaWtlbHkgbm90IHdoYXQgd2UnZCBleHBlY3QuCgpEZWNyZWFzaW5nIHRoZSBlLXZhbHVlIHJlc3VsdGVkIGluIGZld2VyIHF1ZWFyeSBhbGlnbm1lbnRzLCBhcyB3ZSdkIGV4cGVjdC4KCkZvciBmdXJ0aGVyIGFuYWx5c2lzLCB3ZSBzaG91bGQgcHJvYmFibHkgZGlzY3VzcyBhIHJlYXNvbmFibGUgZS12YWx1ZSB0byB1c2UgZm9yIGZpbHRlcmluZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBDaXRhdGlvbnMK