(bio)-informatics, data processing and visualization

Tuesday, June 11, 2024

Choosing the right parameters - LAST: find & align related regions of sequences

LAST, our open source implementation of adaptive seeds, enables fast and sensitive comparison of large sequences with arbitrarily nonuniform composition.
https://genome.cshlp.org/content/21/3/487.long
https://gitlab.com/mcfrith/last 
https://gitlab.com/mcfrith/last/-/blob/main/doc/last-cookbook.rst 

Example outputs using various parameters comparing lettuce ribosomal NOR unit 

lastdb -w1 -W1 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta

lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0  -D100000 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.A 



lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0    -D1000 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.B 


 

lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0     -D100 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.C 


 

lastal -k1 -l1 -m100 -j4 -g1.0 -u2 -w0     -D100 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.D 


 

lastal -k1 -l1 -m100 -j4 -g1.0 -u2 -w0 -W1 -D100 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.E 


 

lastal -k1 -l1 -m100 -j4 -g1.0 -u0 -w0 -W1 -D100 -s2 LST_01_Ribo_12K.LastDB LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.F 


 

===============================================

lastdb -c -w1 -W1 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta

lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0  -D100000 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.A 



lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0    -D1000 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.B 



lastal -k1 -l1  -m10 -j4 -g1.0 -u2 -w0     -D100 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.C 



lastal -k1 -l1 -m100 -j4 -g1.0 -u2 -w0     -D100 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.D 



lastal -k1 -l1 -m100 -j4 -g1.0 -u2 -w0 -W1 -D100 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.E 



lastal -k1 -l1 -m100 -j4 -g1.0 -u0 -w0 -W1 -D100 -s2 LST_01_Ribo_12K.LastDB.x LST_01_Ribo_12K.Fasta > LST_01_Ribo_12K.vs.Self.TEST.x.F 


 

===============================================

>LST_01 Lsat_Tandem_01 m64069_200209_192322.967
CGCGGGTAGAATCCTTTGCAGACGACTTAAATACGCGACGGGGTATTGTAAGTGGCAGAGTGGCCTTGCTGCCACGATCCACTGAGATTCAGCCCTGCGTCGCTCAGATTCGTCCCTCCCCCCCAAAACAAGCCCCCTCATTTTTCCTTCCATGCATACGGACGAGAGGCTGGCTCCCCGACACTTGGTAAAATTTCAGACATTTTGTGACTTGGCGAAAAAAAAGTTCCAAGTCAACCTAAAAAGTTGCCCTTGTCGTATAATGAGTGATGATAGGCCATGGGGGACTACCACCACTTGGTGCCCAGAAGCATATAATGAGTGGACAAGGCATGGTGTTGGGAATTATGCATCCTCGGGGAAATCAGTGTCTGTTCCTGTCACCAAGCTCTTTATGCAATATGTATATATAGGGGGTACATGGGGACTAATACTACCCTTGGTGCCCGACGAGTGTGTTGGGAAACCTAAGCAAGCGAGGCTGGCAAGGCAGGCTACCCAAGGGAACAAGGCACCTGGCCACACACATGCCCATGAACGGCCAAGGGAACAAGGCACCTTGCCACACACACGCCCATGAACTCCCAAGGGAACGAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACATGCCCATCAATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATGAACGGCCAAGGAAACAAGGCACCTTGCCACACAGCATGCCCATGAACGACCAAGGGACCAAGGCACCTTGCCACACACATGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATGAACGGCCAAGGAAGCTAGGCCCCTTGCCACACAGCATGCCCCATGAACGACCAAGGGAACGAGGCACCTTGCCACACACATGCCCATCCATGAACGACCAAGGGAAGAATGCATGTGAGGCTGGCAAGGCTAGGTCATGGCAAGCCACACAGTCAGGATACCTATGGGAACAAGGCATCTTGCCACACACATGCCCATGAACGACCAAGGGAACAAGGCACCTTGCCACACACATGCCCATGAACGACCAAGGAAACGAGGCACCTTGCCACACAGCATGCCCATGAACGACCAAGGGAACGAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAAGGGAACGAGGCCCCTTGCCACACACAGCCCCATGAATGACCAAGGAAGCTAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAATGGAACGAGGCCCCTTGCCACACAACATGCCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACATGGCCATCCATGAACGACCAAGGGAACATGGCTACTTCCCACACACAGCCCCATGAACGGCCAAGGGAACAGGACTTCTTCCCAAACAGACACCCATGAACGACCAAGTGAACAAGGCTTGCTCCCACACACAGCCCCATGAACGACTAAGGGAACAAGCCTACTTCCTACACAAACACTCATGAACGACCATGAAAACGAGGCATCTTGCCACACACATGCCCTTGAACGAACCAATCCCATCCTCATCGTTCTAAGGAACAAGGGGCCTTGACAAACCATGAGCAGATTTCTAAGCAAGTCAAACGATGAAGGGAGCAAAGTGTTGTAACCGAATCCGTTTAAGTGTTGTAGTTCCTACTTACTACATAGCCACCAGGCGAACTGCTCGTGCTCTTTCGGGTTCTTTCGTTTTGCGACTAATGAATAGCTAGAAGCCTTATCTGCCTACCTATCAGTAGGTGTAGGCGACAGAGACAAAAACCCGAACACGATATATTTCAATTTCAAGGTCTATGTTCACAATGACCCACGCAAAGTTTCAATGACATTCCAACTTGATTTGAGCTGCATATCAACAAGTAGGGAACCGAACGCTTCAAGGCATGGACAGGGATAGGTCATGGACATTTATGCCCCAAACATGACATTTTTTTTATTTCAACGCCTTTCATTTATAATAAAAAGCATCCCTACAAAATTTCGTGGGAATCCGAATTAATTCGAGCGAGTTATGGACGATTTCGCAAAATTATGCATCCCTGGGCAAATCAATGTCTGTTCCTGTCACCAAGCTCTTTGTGCAATATGTATATATAGGGGGTACCAGGGGACTGCTCTCCATCGGCGCCCTGGGGGGTGTCTAGCGCCCAAGGCTGTCGAGGCTGGCACGCTCGAGGCCATGGCCAAGGCGCCCGGTCTTCACGAAAACGAGGCCATCAACGCCCCCATAGACGCCCCACTCGCGTGTCCCCTCGCCCCGACGTCGTGCGTGTCCAAAAATTATGCATCATCAGGGAAATCCATGTCCGTTCCTGTCACCAAGCTCTTTGTGCAATATGTATATATAGGGGGGTACCATGGGGGTCTCATTCGCATGGGTGCCCGACTTGGGCGATGGGCAGCTCAGAGTCATGAGGCTGTATCGAGCACCAACAAGGCAAGCCAAGCCAAGCCCCACGACCCATGAAAGAGGCCAACACCCCCAGCACGCTGCCTTGATTTCTCGAACGATGGCCTGAGAAATAGCCCCGTTGCCTTGACTTTCCTCGACGCCGTGCGCATGAACTAGCCCCGTTGCCTTGATTTTCCTCGACGCCGTGCGCACAAACTAGCCCCGTTGCCTTGATTTTCCTCGACGCCGTGCGCATATTAAAAATTATGCATAATCAGGGAAATCCATGTCTGTTCCTGTCACCAAGCTCTTTGTGCAATATGTATATATAGGGGGGGAGCCGTGAGTGAGCACGGCAAGGGGTGAACGCGCCAGATGGCCTTTCAGCGCGATCATGGGTGACGGTTGCTTAGTTCCGAGTTGCTTAGATAATACCCCTCCGAGTGGGGGCCTTGGCGGGGTGTGGGGATGCCTCGTCAGGTCGCTGCGACAACAGTCCAGGGTTGTGGTCTAGCCTTGGAAATGTGGGATGAGCTGTCTGTGTGGCAATATGATGACGATGTGTGCTTGCTAATCTTGTTCGACGTGCTTCTGGTGCTAGCTAGCATTTGATAATGTGCCGATGATGGGGAAGTGATAGGCGTTAAAGTTGCATGTGTTGCTTTTTGTGATACTACTACGGTACGCTGGTCTATCCTTGTTAGACGTGCGGTTGGGTGCGTAAGAGCTGCCATTGGTTAAGCACCGATAACGTGGAGGACGAGCACTATCGGGAAGCATTGTCAGACATTCAGGATCATCACGGCGTGTTGAAGTTATCTTGGAAGCACAAAAGATGCCAAGCCTGGCTAGCGTCTTTGTGTGGGCGGGTAGCTTCGTACACTGCATCAACCCAAGACTTGCCTTCTCTGAGGTACGATTGGTGCCCATGCCCAGCTAGTGCTGGTCGTACAGGATCAGAGATAGGCATTAAGAGGTCCCTTTTTGCTATCCCCGGCCCAAGCACATACTACATTGCCCATGCCCAGCTAGCAATGATGTGCTTAGGTCAGCAGCGTCGCCTGTCCCTTGTTGCGCATCGTTTGGTGCATTCTGGGGGTTGTTTAAGCTTGTGGTTGCTTGCATGGCCTTGTGCCAAGTGGGTGGCTGTGAGTTTGATGATCTTCGGGGATGTCTACCCTAAAGGTGCATGAGTGGTGTTTGGTTTGTAACGGGTGGTTGGATGTCTGCTTGAGCAGCAACTTCCATGCGTTCTTACCTCTTCAGTTGTGTTACAAGGCGAATTTGCCTTGAACATTGTGGGTTCCTGTGTTGCATACCTAATTGATGGCATTATGCTGTTTCAACAAAGTTTGCTTTCGTTAAGCATCGCTTGCGGTGCCTACGAACCTTGAAGCTGTCTTTGTGGTCCATGTTGTCAATGCGGATGTGTCGATGGCATGGCCTATGAAGTGTTGCTTGGTCTCTTGGATATGGAAGCTGGTGTGGGCACGTGGTCAGTCATGATCATGTATTTTGCCCTACATGAGCGTTTCGCTTCTCTAGACGACTGTCTACCTTGCATTGACTTGTTGGTGCAGGGTAGACTGAGTCGAAGAGGAATGCTACCTGGTTGATCCTGCCAGTAGTCATATGCTTGTCTCAAAGATTAAGCCATGCATGTGTAAGTATGAACAAATTCAGACTGTGAAACTGCGAATGGCTCATTAAATCAGTTATAGTTTGTTTGATGGTATCTGCTACTCGGATAACCGTAGTAATTCTAGAGCTAATACGTGCAACAAACCCCCGACTTCTGGAAGGGATGCATTTATTAGATAAAAGGTCGACGCGGGCTCTGCCCGTTGCTGCGATGATTCATGATAACTCGACGGATCGCACGGCCCTCGTGCCGGCGACGCATCATTCAAATTTCTGCCCTATCAACTTTCGATGGTAGGATAGTGGCCTACTATGGTGGTGACGGGTGACGGAGAATTAGGGTTCGATTCCGGAGAGGGAGCCTGAGAAACGGCTACCACATCCAAGGAAGGCAGCAGGCGCGCAAATTACCCAATCCTGACACGGGGAGGTAGTGACAATAAATAACAATACCGGGCTCTTTCGAGTCTGGTAATTGGAATGAGTACAATCTAAATCCCTTAACGAGGATCCATTGGAGGGCAAGTCTGGTGCCAGCAGCCGCGGGTAATTCCAGCTCCAATAGCGTATATTTAAGTTGTTGCAGTTAAAAAGCTCGTAGTTGGACTTTGGGTTGGGTCGGCCGGTCCGCCTTCAGGTGTGCACCGGTTTACTCGTCCCTTCTGTCGGCGATGCGCTCCTGGCCTTAATTGGCCGGGTCGTGCCTCCGGCGCTGTTACTTTGAAGAAATTAGAGTGCTCAAAGCAAGCCTACGCTCTGTATACATTAGCATGGGATAACATCATAGGATTTCGGTCCTATTACGTTGGCCTTCGGGATCGGAGTAATGATTAACAGGGACAGTCGGGGGCATTCGTATTTCATAGTCAGAGGTGAAATTCTTGGATTTATGAAAGACGAACAACTGCGAAAGCATTTGCCAAGGATGTTTTCATTAATCAAGAACGAAAGTTGGGGGCTCGAAGACGATCAGATACCGTCCTAGTCTCAACCATAAACGATGCCGACCAGGGATCAGCGGATGTTGCTTTTAGGACTCCGCTGGCACCTTATGAGAAATCAAAGTTTTTGGGTTCCGGGGGGAGTATGGTCGCAAGGCTGAAACTTAAAGGAATTGACGGAAGGGCACCACCAGGAGTGGAGCCTGCGGCTTAATTTGACTCAACACGGGGAAACTTACCAGGTCCAGACATAGTAAGGATTGACAGACTGAGAGCTCTTTCTTGATTCTATGGGTGGTGGTGCATGGCCGTTCTTAGTTGGTGGAGCGATTTGTCTGGTTAATTCCGTTAACGAACGAGACCTCAGCCTGCTAACTAGCTATGTGGAGGTATCCCTCCACGGCCAGCTTCTTAGAGGGACTATGGCCTTTTAGGCCACGGAAGTTTGAGGCAATAACAGGTCTGTGATGCCCTTAGATGTTCTGGGCCGCACGCGCGCTACACTGATGTATTCAACGAGTATATAGCCTTGGCCGACAGGCCCGGGAAATCTTTGAAATTTCATCGTGATGGGGATAGATCATTGCAATTGTTGGTCTTCAACGAGGAATTCCTAGTAAGCGCGAGTCATCAGCTCGCGTTGACTACGTCCCTGCCCTTTGTACACACCGCCCGTCGCTCCTACCGATTGAATGGTCCGGTGAAGTGTTAGGATCGCGGCGACGTGGGCGGTTCGCCGCCGGCGACGTCGCGAGAATTCCACTGAACCTTATCATTTAGAGGAAGGAGAAGTCGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGTCGAACCCTGCAAGGCAGAACGACCCGTGAACATGTAACCACAACGGGGTGACCGTGATAAGGGCCTCGGTCCTTATCCCCTAACCCTTCCCGACGTGAGTTCGTGGTGTCTTTTTTGGGGCATCATGGATTCCGTTGGACCATAACAAAACCCCGGCACGGTATGTGCCAAGGAAAACAAAAATGAGAAGGACACTACCTGTTTCGCCCCGTTTGCGGTGTGCGTACAGGTCGTGGCCTCCTTGGAATCACAAACGACTCTCGGCAACGGATATCTCGGCTCACGCATCGATGAAGAACGTAGCAAAATGCGATACTTGGTGTGAATTGCAGAATCCCGTGAACCATCGAGTTTTTGAACGCAAGTTGCGCCCGAAGCCATCCGGCTGAGGGCACGCCTGCCTGGGCGTCACGCATCGCGTCGCTCCCCACCATACCTCCCCAACGGGTTGGCATGGTGTTGGGGGCGGATAATGGCCTCCCGTGCTTGTGTTTCGGTTGGCCTAAATAAGAGTTCCCTTCGGCGGACACACGACTAGTGGTGGTTGAATAGACCCTCGTCTTTTGTTGCGTGTCGTGAGCTGTAAGGGTAGCCCTCATCAAAGACCCCATTGTATCGTCTTCGGATGATGCTTCGACCGCGACCCCAGGTCAGGCGGGACTACCCGCTGAGTTTAAGCATATCAATAAGCGGAGGAAAAGAAACTTACAAGGATTCCCTTAGTAACGGCGAGCGAACCGGGATCAGCCCAGCTTGAAAATCGGGCGGCCTCGCTGTCCGAATTGTAGTCTGGAGAAGCGTCCTCAGCGGCGGACCGGGCCCAAGTCCCCTGGAAGGGGGCGCCAGAGAGGGTGAGAGCCCCGTCGTGCCCGGACCCTGTCGCACCACGAGGCGCTGTCTGCGAGTCGGGTTGTTTGGGAATGCAGCCCCAATAGGGCGGTAAATTCCGTCCAAGGCTAAATACCGGCGTGAGACCGATAGCAAACAAGTACCGCGAGGGAAAGATGAAAAGGACTTTGAAAAGAGAGTCAAAGAGTGCTTGAAATTGTCGGGAGGGAAGCGAATGGGGGCCGGCGATGCGTCCCGGTCGGATGTGGAACGGGCGTAAGCCGGTCTGCCGATCGACTCGGGGCGTGGACCGGTGCGGATTGGTGCGGCGGCCAAAGCCCGGACTGTTGATAGGCCCGTGGAGATGCCGTCGCGTCGATCGTGGTTGGCAGCGCGCGCCGTCACGGCGTGCCTCGGCACCTGCGCGCTCCCGGCACCGGCCTGCGGGCACCCCATTCGGCCCGTCTTGAAACACGGACCAAGGAGTCTGACATGTGTGCGAGTCAACGGGTGAGTAAACCCGCAAGGCGTAAGGAAGCTGATTGGCGGGATCCCCCTAGCGGGGTGCACCGCCGACCGACCTTGATCTTCTGAGAAGGGTTCGAGTGTGAGCATGCCTGTCGGGACCCGAAAGATGGTGAACTATGCCTGAGCGGGGCGAAGCCAGAGGAAACTCTGGTGGAGGCCCGCAGCGATACTGACGTGCAAATCGTTCGTCTGACTTGGGTATAGGGGCGAAAGACTAATCGAACCGTCTAGTAGCTGGTTCCCTCCGAAGTTTCCCTCAGGATAGCTGGAGCCCGGGTGCGAGTTCTATCGGGTTAAAGCGAATGATTAGAGGCATCGGGGGCGCAACGCCCTCGACCTATTCTCAAACTTTAAATAGGTAGGACGGTGCGGCTGCTTTGTTGAGCCGTACCACGGAATCGAGAGCTCCAAGTGGGCCATTTTTGGTAAGCAGAACTGGCGATGCGGGATGAACCGGAAGCCGGGTTACGGTGCCAAAACTACGCGCTAACCTAGAACCCACAAAGGGTGTTGGTCGATTAAGACAGCAGGACGGTGGTCATGGAAGTCGAAATCCGCTAAGGAGTGTGTAACAACTCACCTGCCGAATCAACTAGCCCCGAAAATGGATGGCGCTTAAGCGCGTGACCTACACCCGGCCGTCGGGGCAAGTGCCAGGCCCCGATGAGTAGGGAGGGCGCGGCGGTCGCTGCAAAACCTTGGGCGTGAGCCTGGGCGGAGCGGCCGTCGGTGCGGATCTTGGTGGTAGTAGCAAATATTCAAATGAGAACTTTGAAGGCCGAAGAGGGGAAAGGTTCCATGTGAACGGCACTTGCACATGGGTTAGTCGATCCTAAGAGACGGGGGAAGCCCGTCAGATAGCGCGTTTCGCGCGAGCTTCGAAAGGGAATCGGGTTAAAATTCCTGAACCGGGACGTGGCGGCTGACGGCAACGTTAGGGAGTCCGGAGACGTCGGCGGGGGCCTCGGGAAGAGTTATCTTTTCTGTTTAACAGCCTGCCCACCCTGGAAACGACTCAGTCGGAGGTAGGGTCCAGCGGCTGGAAGAGCACCGCACGTCGCGCGGTGTCCGGTGCGCCCCCGGCGGCCCTTGAAAATCCGGAGGACCGAGTGCCTCCCACGCCCGGTCGTACTCATAACCGCATCAGGTCTCCAAGGTGAACAGCCTCTGGTCGATGGAACAATGTAGGCAAGGGAAGTCGGCAAAATGGATCCGTAACCTCGGGAAAAGGATTGGCTCTGAGGGCTGGGCACGGGGGTCCCAGTCCCGAACCCGTCGGCTGTTGGCGGACTGCTCGAGCTGCTTCCGCGGCGGAGAGCGGGTCGCTGCGTGCCGGCCGGGGGGACGGACTGGGAACGGCTCCTTCGGGGGCCTTCCCCGGGCGTCGAACAGCCAACTCAGAACTGGTACGGACAAGGGGAATCCGACTGTTTAATTAAAACAAAGCATTGCGATGGTCCCTGCGGATGCTAACGCAATGTGATTTCTGCCCAGTGCTCTGAATGTCAAAGTGAAGAAATTCAACAAGCGCGGGTAAACGGCGGGAGTAACTATGACTCTCTTAAGGTAGCCAAATGCCTCGTCATCTAATTAGTGACGCGCATGAATGGATTAACGAGATTCCCACTGTCCCTGTCTACTATCCAGCGAAACCACAGCCAAGGGAACGGGCTTGGCAGAATCAGCGGGGAAAGAAGACCCTGTTGAGCTTGACTCTAGTCCGACTTTGTGAAATGACTTGAGAGGTGTAGTATAAGTGGGAGCCTTCGGGCGAAAGTGAAATACCACTACTTTTAACGTTATTTTACTTATTCCGTGAATCGGAAGCGGGGCAATGCCCCTCTTTTTGGACCCAAGGCCTGCTTCGGCGGGCCGATCCGGGCGGAAGACATTGTCAGGTGGGGAGTTTGGCTGGGGCGGCACATCTGTTAAAAGATAACGCAGGTGTCCTAAGATGAGCTCAACGAGAACAGAAATCTCGTGTGGAACAGAAGGGTAAAAGCTCGTTTGATTCTGATTTTCCAGTACGAATACGAACCGTGAAAGCGTGGCCTAACGATCCTTTAGACCTTCGGAATTTGAAGCTAGAGGTGTCAGAAAAGTTACCACAGGGATAACTGGCTTTGTGGCAGCCAAGCGTTCATAGCGACGTTGCTTTTTGATCCTTCGATGTCGGCTCTTCCTATCATTGTGAAGCAGAATTCACCAAGTGTTGGATTGTTCACCCACCAATAGGGAACGTGAGCTGGGTTTAGACCGTCGTGAGACAGGTTAGTTTTACCCTACTGATGACAGTGTCGCAATAGTAATTCAACCTAGTACGAGAGGAACCGTTGATTCGCACAATTGGTCATCGCGCTTGGTTGAAAAGCCAGTGGCGCGAAGCTACCGTGCGCTGGATTATGACTGAACGCCTCTAAGTCAGAATCCGGGCTAGAAGCGACGCGTGTGCCCGCCGCCTGTTTGCCGACCAGCAGTAGGGGCCTCGGCCCCCAAAGGCACGTGTCGTTGGCTAAGCCTGTGCGACGGATGAGTCGTGCAGGCCGCCATGAAGTATAATTCCCATCAAGCGGCGGGGTAGAATCCTTTGCAGACGACTTAAATACGCGACGGGGTATTGTAAGTGGCAGAGTGGCCTTGCTGCCACGATCCACTGAGATTCAGCCCTGCGTCGCTCAGATTCGTCCCTCCCCCCCAAAACAAGCCCCCTCATTTTTCCTTCCATGCATACGGACGAGAGGCTGGCTCCCCGACACTTGGTAAAATTTCAGACATTTTGTGACTTGGCGAAAAAAAAGTTCCAAGTCAACCTAAAAAGTTGCCCTTGTCGTATAATGAGTGATGATAGGCCATGGGGGACTACCACCACTTGGTGCCCAGAAGCATATAATGAGTGGACAAGGCATGGTGTTGGGAATTATGCATCCTCGGGGAAATCAGTGTCTGTTCCTGTCACCAAGCTCTTTATGCAATATGTATATATAGGGGGTACATGGGGACTAATACTACCCTTGGTGCCCGACGAGTGTGTTGGGAAACCTAAGCAAGCGAGGCTGGCAAGGCAGGCTACCCAAGGGAACAAGGCACCTGGCCACACACATGCCCATGAACGGCCAAGGGAACAAGGCACCTTGCCACACACACGCCCATGAACTCCCAAGGGAACGAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACATGCCCATCAATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATGAACGGCCAAGGAAACAAGGCACCTTGCCACACAGCATGCCCATGAACGACCAAGGGACCAAGGCACCTTGCCACACACATGCCCATCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACTTGCCCATGAACGGCCAAGGAAGCTAGGCCCCTTGCCACACAGCATGCCCATGAACGACCAAGGGAACGAGGCACCTTGCCACACACATGCCCATCCATGAACGACCAAGGGAAGAATGCATGTGAGGCTGGCAAGGCTAGGTCATGGCAAGCCACACAGTCAGGATACCTATGGGAACAAGGCATCTTGCCACACACATGCCCATGAACGACCAAGGGAACAAGGCACCTTGCCACACACATGCCCATGAACGACCAAGGAAACGAGGCACCTTGCCACACAGCATGCCCAATGAACGACCAAGGGAACGAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAAGGGAACGAGGCCCCTTGCCACACACAGCCCCATGAATGACCAAGGAAGCTAGGCCCCTTGCCACACACATGCCCATCCATGAACGACCAATGGAACGAGGCCCCTTGCCACACAACATGCCCATGAACGACCAAGGAAGCTAGGCCCCTTGCCACACACATGGCCATCCATGAACGACCAAGGGAACATGGCTACTTCCCACACACAGCCCCATGAACGGCCAAGGGAACAGGACTTCTTCCCAAACAGACACCCATGAACGACCAAGTGAACAAGGCTTGCTCCCACACACAGCCCCATGAACGACTAAGGGAACAAGCCTACTTCCTACACAAACACTCATGAACGACCATGAAAACGAGGCATCTTGCCACACACATGCCCTTGAACGAACCAATCCCATCCTCATCGTTCTAAGGAACAAGGGGCCTTGACAAACCATGAGCAGATTTCTAAGCAAGTCAAACGATGAAGGGAGCAAAGTGTTGTAACCGAATCCGTTTAAGTGTTGTAGTTCCTACTTACTACATAGCCACCAGGCGAACTGCTCGTGCTCTTTCGGGTTCTTTCGTTTTGCGACTAATGAATAGCTAGAAGCCTTATCTGCCTACCTATCAGTAGGTGTAGGCGACAGAGACAAAAACCCCGAACACGATATATTTCAATTTCAAGGTCTATGTTCACAATGACCCACGCAAAGTTTCAATGACATTCCAACTTGATTTGAGCTGCATATCAACAAGTAGGGAACCGAACGCTTCAAGGCATGGACAGGGATAGGTCATGGACATTTATGCCCCAAACATGACATTTTTTTTATTTCAACGCCTTTCATTTATAATAAAAAGCATCCCTACAAAATTTCGTGGGAATCCGAATTAATTCGAGCGAGTTATGGACGA

 



Wednesday, December 22, 2021

sum of numbers in column

cat numbers_in_column | paste -sd+ - | bc

 

Tuesday, August 10, 2021

MUMmer on large genomes memo

nucmer -l 1000 -g 1000 --maxmatch --nosimplify --prefix=test1 GenomeX.fa GenomeY.fa

nucmer -l 1000 -g 1000 --prefix=test2 GenomeX.fa GenomeY.fa
 
nucmer -l  300 -g 1000 --prefix=test2 GenomeX.fa GenomeY.fa

-l Minimum length of an maximal exact match (default 20)
-g Maximum gap between two adjacent matches in a cluster (default 90)
--maxmatch Use all anchor matches regardless of their uniqueness
--[no]simplify Simplify alignments by removing shadowed clusters. Turn this option off if aligning a sequence to itself to look for repeats (default --simplify)

Although MUMmer was not specifically designed to identify repeats, it does has a few methods of identifying exact and exact tandem repeats. In addition to these methods, the nucmer alignment script can be used to align a sequence (or set of sequences) to itself. By ignoring all of the hits that have the same coordinates in both inputs, one can generate a list of inexact repeats. When using this method of repeat detection, be sure to set the --maxmatch and --nosimplify options to ensure the correct results.

mummerplot test2.delta -t png -p test2.plot.D (first try with default layout)

mummerplot -l test2.delta -t png -p test2.plot.L (second try with all hits on main diagonal)

mummerplot "test2.delta" --filter --png --large --prefix "test2-Plot" --title "test2"

To get SVG plot you have to edit out.gp file, find and change following lines:

set terminal svg size 1600,1600 font "Helvetica-Bold,24 bold"
set terminal svg size 1200,1200 font "Helvetica-Bold,16 bold"
 
set output "test2.X.svg"
.....
set style line 1  lt 1 lw 3 pt 6 ps 0.5
set style line 2  lt 3 lw 3 pt 6 ps 0.5
set style line 3  lt 2 lw 3 pt 6 ps 0.5
set grid layerdefault linewidth 6

set style line 1  lt 1 lw 3 pt 6 ps 0.3
set style line 2  lt 3 lw 3 pt 6 ps 0.3
set style line 3  lt 2 lw 3 pt 6 ps 0.3
set grid layerdefault linewidth 3


and then re-run gnuplot

http://mummer.sourceforge.net/manual/


Monday, May 17, 2021

BLAST-N Plus run parameters and tab-delimited output



==================================================

makeblastdb -in Genome_DNA.Fasta -out Genome_DNA.bdb -dbtype nucl -input_type fasta -max_file_sz 2GB -hash_index -parse_seqids 

makeblastdb \
    -in Genome_DNA.Fasta \
    -out Genome_DNA.bdb \
    -dbtype nucl \
    -input_type fasta \
    -max_file_sz 2GB \
    -hash_index \
    -parse_seqids

==================================================

blastn -task blastn -query Query_Seqs.Fasta -db Genome_DNA.bdb -out Query_Seqs.vs.Genome_DNA.blastplus.out.m0 -outfmt 0 -evalue 1e-120 -dbsize 1000000 -dust no -word_size 24 -xdrop_ungap 50 -xdrop_gap 500 -xdrop_gap_final 1000 -max_target_seqs 240 -line_length 100 -num_threads 6

blastn \
    -task blastn \
    -query Query_Seqs.Fasta \
    -db Genome_DNA.bdb \
    -out Query_Seqs.vs.Genome_DNA.blastplus.out.m0 \
    -outfmt 0 \
    -evalue 1e-120 \
    -dbsize 1000000 \
    -dust no \
    -word_size 24 \
    -xdrop_ungap 50 \
    -xdrop_gap 500 \
    -xdrop_gap_final 1000 \
    -max_target_seqs 240 \
    -line_length 100 \
    -num_threads 6

==================================================

blastn -task blastn -query Query_Seqs.Fasta -db Genome_DNA.bdb -out Query_Seqs.vs.Genome_DNA.blastplus.out.m7 -outfmt '7 qseqid sseqid evalue pident score length nident mismatch gaps frames qstart qend sstart send qcovhsp qlen slen' -evalue 1e-120 -dbsize 1000000 -dust no -word_size 24 -xdrop_ungap 50 -xdrop_gap 500 -xdrop_gap_final 1000 -max_target_seqs 240 -num_threads 6 

blastn \
    -task blastn \
    -query Query_Seqs.Fasta \
    -db Genome_DNA.bdb \
    -out Query_Seqs.vs.Genome_DNA.blastplus.out.m7 \
    -outfmt '7 qseqid sseqid evalue pident score length nident mismatch gaps frames qstart qend sstart send qcovhsp qlen slen' \
    -evalue 1e-120 \
    -dbsize 1000000 \
    -dust no \
    -word_size 24 \
    -xdrop_ungap 50 \
    -xdrop_gap 500 \
    -xdrop_gap_final 1000 \
    -max_target_seqs 240 \
    -num_threads 6   

# Fields: 

query id - 1 [0] (qseqid)
subject id - 2 [1] (sseqid)
evalue - 3 [2] (evalue)
% identity - 4 [3] (pident)
score - 5 [4] (score)
alignment length - 6 [5] (length)
identical - 7 [6] (nident)
mismatches - 8 [7] (mismatch)
gaps - 9 [8] (gaps)
query/sbjct frames - 10 [9] (frames)
q. start - 11 [10] (qstart)
q. end - 12 [11] (qend)
s. start - 13 [12] (sstart)
s. end - 14 [13] (send)
% query coverage per hsp - 15 [14] (qcovhsp)
query length - 16 [15] (qlen)
subject length - 17 [16] (slen)

==================================================


Tuesday, May 4, 2021

BLAST-N of low quality long sequences

blastall -p blastn -V T -F F -e 1e-20 -y 50 -X 75 -Z 500 -b 240 -v 240 -d DATABASE -i INPUT -o OUTPUT

Where:

-y X  dropoff value for ungapped extensions in bits (0.0 invokes default behavior)

      blastn 20, megablast 10, all others 7 [Real]


-X X  dropoff value for gapped alignment (in bits) (zero invokes default behavior)

      blastn 30, megablast 20, tblastx 0, all others 15 [Integer]


-Z X  dropoff value for final gapped alignment in bits (0.0 invokes default behavior)

      blastn/megablast 100, tblastx 0, all others 25 [Integer]


Wednesday, April 25, 2012

batch extraction of Pfam HMM domains

Batch run for Pfam HMM domains - one model per search versus large fasta file with protein sequences:

Pfam-A.hmm - file with Pfam HMM models
Pfam-A.names.IDs - file with Pfam model names


head Pfam-A.names.IDs
1-cysPrx_C
120_Rick_ant
14-3-3
2-Hacid_dh
2-Hacid_dh_C
2-oxoacid_dh
2-ph_phosp
2CSK_N
2C_adapt
2Fe-2S_Ferredox


mkdir _hmm_files_

while read line; do hmmfetch Pfam-A.hmm $line > _hmm_files_/$line.hmm; echo $line; done < Pfam-A.names.IDs


mkdir _hmm_out_e20_

for long_crap in _hmm_files_/*.hmm; do short_crap=$(echo $long_crap | sed -e "s/.*\///"); hmmsearch -E 1e-20 $long_crap Lsat_CDS_BGI_V4_Prot.aa > _hmm_out_e20_/$short_crap.vs.Lsat_CDS_BGI_V4_Prot.e20; done &


ls -l _hmm_files_ | head
-rw-r--r--+ 1 akozik akozik  118664 Apr 25 12:37 120_Rick_ant.hmm
-rw-r--r--+ 1 akozik akozik  109882 Apr 25 12:37 14-3-3.hmm
-rw-r--r--+ 1 akozik akozik   19555 Apr 25 12:37 1-cysPrx_C.hmm
-rw-r--r--+ 1 akozik akozik   71642 Apr 25 12:37 2_5_RNA_ligase2.hmm
-rw-r--r--+ 1 akozik akozik   18154 Apr 25 12:37 2C_adapt.hmm
-rw-r--r--+ 1 akozik akozik   68415 Apr 25 12:37 2CSK_N.hmm
-rw-r--r--+ 1 akozik akozik   16791 Apr 25 12:37 2Fe-2S_Ferredox.hmm
-rw-r--r--+ 1 akozik akozik   83202 Apr 25 12:37 2-Hacid_dh_C.hmm
-rw-r--r--+ 1 akozik akozik   62452 Apr 25 12:37 2-Hacid_dh.hmm

ls -l _hmm_out_e20_ | head
-rw-r--r--+ 1 akozik akozik    1870 Apr 25 13:29 120_Rick_ant.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik   32467 Apr 25 13:29 14-3-3.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik    1879 Apr 25 13:29 1-cysPrx_C.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik    1879 Apr 25 13:29 2_5_RNA_ligase2.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik    1850 Apr 25 13:29 2C_adapt.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik    1871 Apr 25 13:29 2CSK_N.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik    1881 Apr 25 13:29 2Fe-2S_Ferredox.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik   30616 Apr 25 13:29 2-Hacid_dh_C.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20
-rw-r--r--+ 1 akozik akozik   25730 Apr 25 13:29 2-Hacid_dh.hmm.vs.Lsat_CDS_BGI_V4_Prot.e20

Wednesday, October 26, 2011

rsync memo

rsync -avz username@remote_hostname:/path/to/data/*.fastq ./

Sunday, October 9, 2011

wget NCBI GenBank genomes


wget -r -np -A.gbk ftp://ftp.ncbi.nlm.nih.gov/genomes/Arabidopsis_thaliana/

wget -r -np -A.faa ftp://ftp.ncbi.nlm.nih.gov/genomes/Arabidopsis_thaliana/

wget -r -np -A.ptt ftp://ftp.ncbi.nlm.nih.gov/genomes/Arabidopsis_thaliana/

wget -r -np -A.gbk.gz ftp://ftp.ncbi.nlm.nih.gov/genomes/Vitis_vinifera/

wget -r -np -A.fa.gz ftp://ftp.ncbi.nlm.nih.gov/genomes/Vitis_vinifera/


Tuesday, October 26, 2010

NCBI UniVec Illumina Adaptors and Primers



>gnl|uv|NGB00361.1:1-92 Illumina PCR Primer
CAAGCAGAAGACGGCATACGAGCTCTTCCGATCTAATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT
>gnl|uv|NGB00361.1:1-92-rev-comp 92 nt
AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00362.1:1-61 Illumina Paired End PCR Primer 2.0
CAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCT
>gnl|uv|NGB00362.1:1-61-rev-comp 61 nt
AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00376.1:1-44 Illumina Gex PCR Primer 2
AATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGA
>gnl|uv|NGB00376.1:1-44-rev-comp 44 nt
TCGGACTGTAGAACTCTGAACCTGTCGGTGGTCGCCGTATCATT

>gnl|uv|NGB00364.1:1-43 Illumina Multiplexing PCR Primer Index 1
CAAGCAGAAGACGGCATACGAGATCGTGATGTGACTGGAGTTC
>gnl|uv|NGB00364.1:1-43-rev-comp 43 nt
GAACTCCAGTCACATCACGATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00365.1:1-43 Illumina Multiplexing PCR Primer Index 2
CAAGCAGAAGACGGCATACGAGATACATCGGTGACTGGAGTTC
>gnl|uv|NGB00365.1:1-43-rev-comp 43 nt
GAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00366.1:1-43 Illumina Multiplexing PCR Primer Index 3
CAAGCAGAAGACGGCATACGAGATGCCTAAGTGACTGGAGTTC
>gnl|uv|NGB00366.1:1-43-rev-comp 43 nt
GAACTCCAGTCACTTAGGCATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00367.1:1-43 Illumina Multiplexing PCR Primer Index 4
CAAGCAGAAGACGGCATACGAGATTGGTCAGTGACTGGAGTTC
>gnl|uv|NGB00367.1:1-43-rev-comp 43 nt
GAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00368.1:1-43 Illumina Multiplexing PCR Primer Index 5
CAAGCAGAAGACGGCATACGAGATCACTGTGTGACTGGAGTTC
>gnl|uv|NGB00368.1:1-43-rev-comp 43 nt
GAACTCCAGTCACACAGTGATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00369.1:1-43 Illumina Multiplexing PCR Primer Index 6
CAAGCAGAAGACGGCATACGAGATATTGGCGTGACTGGAGTTC
>gnl|uv|NGB00369.1:1-43-rev-comp 43 nt
GAACTCCAGTCACGCCAATATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00370.1:1-43 Illumina Multiplexing PCR Primer Index 7
CAAGCAGAAGACGGCATACGAGATGATCTGGTGACTGGAGTTC
>gnl|uv|NGB00370.1:1-43-rev-comp 43 nt
GAACTCCAGTCACCAGATCATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00371.1:1-43 Illumina Multiplexing PCR Primer Index 8
CAAGCAGAAGACGGCATACGAGATTCAAGTGTGACTGGAGTTC
>gnl|uv|NGB00371.1:1-43-rev-comp 43 nt
GAACTCCAGTCACACTTGAATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00372.1:1-43 Illumina Multiplexing PCR Primer Index 9
CAAGCAGAAGACGGCATACGAGATCTGATCGTGACTGGAGTTC
>gnl|uv|NGB00372.1:1-43-rev-comp 43 nt
GAACTCCAGTCACGATCAGATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00373.1:1-43 Illumina Multiplexing PCR Primer Index 10
CAAGCAGAAGACGGCATACGAGATAAGCTAGTGACTGGAGTTC
>gnl|uv|NGB00373.1:1-43-rev-comp 43 nt
GAACTCCAGTCACTAGCTTATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00374.1:1-43 Illumina Multiplexing PCR Primer Index 11
CAAGCAGAAGACGGCATACGAGATGTAGCCGTGACTGGAGTTC
>gnl|uv|NGB00374.1:1-43-rev-comp 43 nt
GAACTCCAGTCACGGCTACATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00375.1:1-43 Illumina Multiplexing PCR Primer Index 12
CAAGCAGAAGACGGCATACGAGATTACAAGGTGACTGGAGTTC
>gnl|uv|NGB00375.1:1-43-rev-comp 43 nt
GAACTCCAGTCACCTTGTAATCTCGTATGCCGTCTTCTGCTTG

>gnl|uv|NGB00363.1:1-34 Illumina Multiplexing PCR Primer 2.0
GTGACTGGAGTTCAGACGTGTGCTCTTCCGATCT
>gnl|uv|NGB00363.1:1-34-rev-comp 34 nt
AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC

>gnl|uv|NGB00377.1:1-32 Illumina DpnII Gex Sequencing Primer
CGACAGGTTCAGAGTTCTACAGTCCGACGATC
>gnl|uv|NGB00377.1:1-32-rev-comp 32 nt
GATCGTCGGACTGTAGAACTCTGAACCTGTCG

>gnl|uv|NGB00378.1:1-32 Illumina NlaIII Gex Sequencing Primer
CCGACAGGTTCAGAGTTCTACAGTCCGACATG
>gnl|uv|NGB00378.1:1-32-rev-comp 32 nt
CATGTCGGACTGTAGAACTCTGAACCTGTCGG

>gnl|uv|NGB00380.1:1-26 Illumina Small RNA 3' Adapter
AATCTCGTATGCCGTCTTCTGCTTGC
>gnl|uv|NGB00380.1:1-26-rev-comp 26 nt
GCAAGCAGAAGACGGCATACGAGATT

>gnl|uv|NGB00379.1:1-23 Illumina 3' RNA Adapter
TCGTATGCCGTCTTCTGCTTGTT
>gnl|uv|NGB00379.1:1-23-rev-comp 23 nt
AACAAGCAGAAGACGGCATACGA

Tuesday, September 28, 2010

Illumina adaptor trimming


### NGB00362.1:1-61 Illumina Paired End PCR Primer 2.0
perl -p -i -e 's/AGATCGGAAGAGCGGT.*//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAGAGCGG$//' z-trim-test.trim

###
NGB00361.1:1-92 Illumina PCR Primer
perl -p -i -e 's/AGATCGGAAGAGCGTC.*//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAGAGCGT$//' z-trim-test.trim

### Common region for Illumina PCR Primer and Paired End PCR Primer 2.0
perl -p -i -e 's/AGATCGGAAGAGCG$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAGAGC$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAGAG$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAGA$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAAG$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGAA$//' z-trim-test.trim
perl -p -i -e 's/AGATCGGA$//' z-trim-test.trim

Removing of homopolymer tails:

perl -p -i -e 's/^A{8,}//' z-trim-test.trim
perl -p -i -e 's/^T{8,}//' z-trim-test.trim
perl -p -i -e 's/^C{8,}//' z-trim-test.trim
perl -p -i -e 's/^G{8,}//' z-trim-test.trim

perl -p -i -e 's/A{8,}$//' z-trim-test.trim
perl -p -i -e 's/T{8,}$//' z-trim-test.trim
perl -p -i -e 's/G{8,}$//' z-trim-test.trim
perl -p -i -e 's/C{8,}$//' z-trim-test.trim

Friday, July 30, 2010

virtual splicing

regular expressions to remove surrounded/enclosed lowercase characters by uppercase letters (virtual splicing), for example:
perl -p -i.1 -e 's/(?<=[A-Z])[a-z]*(?=[A-Z])//g' example.txt
or
perl -p -i.1 -e 's/(?<=[A-Z])[a-z]*(?=[A-Z])//g unless /^>/' example.txt
(in the case of file with FASTA header)

will transform string
atgcATGCcgtaACGTtgcaCGTAcgta
to
atgcATGCACGTCGTAcgta

(solution suggested by Leah McHale https://pro.osu.edu/profiles/mchale.21/)

Sunday, December 20, 2009

sequence trimming using 'cut'

original FASTA file (there is an assumption that sequence string in one single line):

bash-2.03$ less fastassy_original.fa
>3SEQS_D L:60
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>1SEQS_E L:60
ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
>2SEQS_B L:60
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>1SEQS_A L:60
GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG


trim 10 nt from the right side (3') - one step approach:
(original sequences are 60 nt long)
bash-2.03$ cut -c1-50 fastassy_original.fa > fastassy_trim_right.fa
bash-2.03$ less fastassy_trim_right.fa
>3SEQS_D L:60
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGAT
>1SEQS_E L:60
ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGA
>2SEQS_B L:60
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGA
>1SEQS_A L:60
GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTA


trim 10 nt from the left side (5') - two step approach:
bash-2.03$ cp -i fastassy_original.fa fastassy_temporary.fa
bash-2.03$ perl -p -i -e 's/^\>/XXXXXXXXXX\>/' fastassy_temporary.fa
(step 1 - to modify FASTA header only)
bash-2.03$ less fastassy_temporary.fa
XXXXXXXXXX>3SEQS_D L:60
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
XXXXXXXXXX>1SEQS_E L:60
ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
XXXXXXXXXX>2SEQS_B L:60
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
XXXXXXXXXX>1SEQS_A L:60
GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG
bash-2.03$
bash-2.03$ cut -c11-60 fastassy_temporary.fa > fastassy_trim_left.fa
(step 2 - to cut first 10 characters)
bash-2.03$
bash-2.03$ less fastassy_trim_left.fa
>3SEQS_D L:60
AAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>1SEQS_E L:60
CAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
>2SEQS_B L:60
CCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>1SEQS_A L:60
TTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

Saturday, December 19, 2009

non-redundant FASTA dataset using 'sort' and 'uniq'

original file:
>SEQS_A
GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG
>SEQS_B
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>SEQS_C
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>SEQS_D
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>SEQS_E
ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
>SEQS_F
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>SEQS_G
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT

step A - use seqs_processor to generate tab-delimited file:
http://code.google.com/p/atgc-tools/wiki/seqs_processor_and_translator
SEQS_A 60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG
SEQS_B 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
SEQS_C 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
SEQS_D 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
SEQS_E 60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
SEQS_F 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
SEQS_G 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT

step B - use Unix sort and uniq to generate non-redundant set -
with redundancy count (option -c):
sort -k 3 fastassy.tab | uniq -f 2 -c > fastassy.tab.uniq
or without redundancy count:
sort -k 3 fastassy.tab | uniq -f 2 > fastassy.tab.uniq

with option '-c' we will get:
3 SEQS_D 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
1 SEQS_E 60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
2 SEQS_B 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
1 SEQS_A 60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

without redundancy count:
SEQS_D 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
SEQS_E 60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
SEQS_B 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
SEQS_A 60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

step C - back to FASTA format:

cp -i fastassy.tab.uniq fastassy.nr.fasta

to remove leading white-space:
perl -p -i -e 's/^ {1,}//' fastassy.nr.fasta
3 SEQS_D 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
1 SEQS_E 60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
2 SEQS_B 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
1 SEQS_A 60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

to remove all remaining white-space:
perl -p -i -e 's/ {1,}//' fastassy.nr.fasta
3SEQS_D 60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
1SEQS_E 60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
2SEQS_B 60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
1SEQS_A 60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

to restore FASTA '>' sign:
perl -p -i -e 's/^/\>/' fastassy.nr.fasta
to replace first 'tab' with length info:
perl -p -i -e 's/\t/ L\:/' fastassy.nr.fasta
>3SEQS_D L:60 AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>1SEQS_E L:60 ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
>2SEQS_B L:60 CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>1SEQS_A L:60 GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

to replace remaining 'tab' with a new line:
perl -p -i -e 's/\t/ \n/' fastassy.nr.fasta
>3SEQS_D L:60
AAATCCTGTCAAAATGGAAATTTTATATTTAAGAAAAGTAACAAAATGATAATTTTATAT
>1SEQS_E L:60
ATCTATACGACAAAATTGCAGTTTTTTTTGTCCTATACAAAAAGGCGGGACAAAGAATCT
>2SEQS_B L:60
CTTTGTGAATCCGCTATATTTTCTTTCTTTGCCCATTTCGGCGCATATGATTTCTAGAAG
>1SEQS_A L:60
GGTTGTTGGTTTTTTGGTGTTTTTGCATACAAGTTTTAGAAGGTGTTGTATCATTCTCAG

Done!

Friday, December 18, 2009

bash batch run with echo and sed

TUTORIAL - HOW TO BLAST DNA SEQUENCES IN fastassy.dna FILE
VERSUS SEVERAL DB FILES LOCATED IN ANOTHER DIRECTORY:


[ EXAMPLE OF FILE NAME MODIFICATIONS USING echo AND sed ]

### WORKING DIRECTORY ###
bash-2.03$ pwd
/net/bfs3/solexa_assembly_analysis
bash-2.03$
### BLAST INPUT FILE IN CURRENT WORKING DIRECTORY ###
bash-2.03$ ls -l fastassy.*

-rw-r--r-- 1 akozik rwm 989 Dec 18 09:27 fastassy.dna
bash-2.03$
### BLAST DATABASE FILES IN ANOTHER DIRECTORY ###
bash-2.03$ ls -l /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta
-rw-r--r-- 1 akozik other 339278682 Nov 22 07:45 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 475988197 Nov 22 07:46 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 566040760 Nov 22 07:46 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 580446573 Nov 22 07:47 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 638547695 Nov 22 07:47 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 636473338 Nov 22 07:48 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125.fasta
-rw-r--r-- 1 akozik other 738071638 Nov 22 07:48 /net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125.fasta
bash-2.03$
### CHECK FULL PATH TO TARGET FILES ###
bash-2.03$ for long_crap in /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta; do echo $long_crap; done
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125.fasta
/net/bfs3/solexa_assembly_input_lact/090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125.fasta
bash-2.03$
### GET TARGET FILE NAMES - SINGLE LINE SYNTAX ###
bash-2.03$ for long_crap in /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta; do short_crap=$(echo $long_crap | sed -e "s/\/.*\///"); echo $short_crap; done
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125.fasta
bash-2.03$

### GET TARGET FILE NAMES - SYNTAX IN SEVERAL LINES ###
bash-2.03$ for long_crap in /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta;
> do short_crap=$(echo $long_crap | sed -e "s/\/.*\///");
> echo $short_crap; done
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125.fasta
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125.fasta
bash-2.03$
### GET TRUNCATED FILE NAMES ###
bash-2.03$ for long_crap in /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta;
> do short_crap=$(echo $long_crap | sed -e "s/\/.*\///");
> tiny_crap=$(echo $short_crap | sed -e "s/\.fasta//");
> echo $tiny_crap;
> done
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125
bash-2.03$
### FINALLY - BATCH BLAST RUN ###
bash-2.03$ for long_crap in /net/bfs3/solexa_assembly_input_lact/090721*.100_125.fasta;
> do short_crap=$(echo $long_crap | sed -e "s/\/.*\///");
> tiny_crap=$(echo $short_crap | sed -e "s/\.fasta//");
> echo $tiny_crap;
> blastall -p blastn -F F -V T -e 1e-10 -b 1000 -v 1000 -i fastassy.dna -d $long_crap -o fastassy.dna.$tiny_crap;
> done
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125
090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125
bash-2.03$
### BLAST OUTPUT FILES ###
bash-2.03$ ls -l fastassy.*
-rw-r--r-- 1 akozik rwm 989 Dec 18 09:27 fastassy.dna
-rw-r--r-- 1 akozik rwm 9584 Dec 18 10:17 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125
-rw-r--r-- 1 akozik rwm 10100 Dec 18 10:18 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L2._GC_.100_125
-rw-r--r-- 1 akozik rwm 9405 Dec 18 10:19 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L3._GC_.100_125
-rw-r--r-- 1 akozik rwm 10768 Dec 18 10:19 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L4._GC_.100_125
-rw-r--r-- 1 akozik rwm 10156 Dec 18 10:20 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L5._GC_.100_125
-rw-r--r-- 1 akozik rwm 6940 Dec 18 10:21 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L6._GC_.100_125
-rw-r--r-- 1 akozik rwm 6797 Dec 18 10:22 fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L7._GC_.100_125
bash-2.03$
### DONE ! ###
bash-2.03$ less fastassy.dna.090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125
BLASTN 2.2.17 [Aug-26-2007]
...
Query= 1LTV1A_235441_266_4 L:300
(300 letters)

Database: 090721_SOLEXA1_PEFC42D3MAAXX_Lact_Genomic.L1._GC_.100_125.fa
sta
2,177,045 sequences; 248,580,403 total letters

Searching..................................................done

Score E
Sequences producing significant alignments: (bits) Value

SBP1_1_48_724_728 | 34843 [ 122 ] 194 1e-48
SBP1_1_87_749_1889 | 24530 [ 125 ] 192 5e-48
SBP1_1_40_892_1154 | 36901 [ 122 ] 168 8e-41
SBP1_1_58_664_973 | 37778 [ 110 ] 159 8e-38
SBP1_1_68_519_348 | 27743 [ 121 ] 92 1e-17

>SBP1_1_48_724_728 | 34843 [ 122 ]
Length = 122

Score = 194 bits (98), Expect = 1e-48
Identities = 113/118 (95%)
Strand = Plus / Plus


Query: 1 atggagcttttaaggaatcgttgaccaatgacattcatgagatgcttgagttatatgagg 60
|||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||
Sbjct: 5 atggagcttttaaggaatcgttgaccaatgacatccatgagatgcttgagttatatgagg 64


Query: 61 caacatatatgagggtgaaaggagaagttgtactagaggaagctcttctttttacaaa 118
|||||| |||||| ||||||||||||||||||||||| |||||||||||||| |||||
Sbjct: 65 caacatttatgagagtgaaaggagaagttgtactagacgaagctcttcttttcacaaa 122

...

Just got started

perl -p -i -e 's/\r//' *.txt