I think you should be able to use Blast
# Create BLAST database
makeblastdb \
-in ${input_fasta} \
-dbtype nucl \
-parse_seqids \
-out lncrna_db
# Perform all-vs-all BLAST search
blastn \
-task megablast \
-query ${input_fasta} \
-db lncrna_db \
-evalue ${params.evalue} \
-num_threads ${task.cpus} \
-outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore" \
-max_target_seqs 5 \
-out blast_results.tsv
At which point you can then filter the output tsv for single-copy lncRNAs.
I generated this answer using amplicon.ai, a tool I've been building to iteratively write and execute pipelines easier. Feel free to try it out
