User Tools

Site Tools


handy_custom_functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
handy_custom_functions [2021/05/12 14:07] – created 168.91.18.151handy_custom_functions [2023/07/25 12:08] (current) 134.190.232.186
Line 6: Line 6:
 function coltab { function coltab {
     column -t -s $'\t' $1 | less -S     column -t -s $'\t' $1 | less -S
 +}
 +</code>
 +
 +I will discuss here some more custom functions that I found are very useful in my daily workflow. To add these functions to your system, simply add them to your ''.bashrc''
 +
 +
 +===Reformatting FASTA files downloaded from NCBI===
 +
 +For most of my analyses, the header format of NCBI FASTA files is very annoying. This function will convert the annoying format into ''>SpeciesName_i_AccessionNumber''
 +
 +<code>
 +# format NCBI headers to something readable
 +function reformat_ncbi_headers {
 +    newfile=${1%.fasta}.hdfmt.fasta
 +    cp $1 $newfile
 +    sed -i -r -e '/^>/ s/ >.*//' -e 's/>([^ ]*).*\[(.*)\]/>\2_i_\1/' -e 's/ /_/g' $newfile
 +    sed -i -r -e '/^>/ s/gi.*ref\|(.*)\|/\1/' $newfile
 +}
 +</code>
 +
 +===Replacing work names with final names for publication===
 +
 +In my experience I do my analyses with new genomes / transcriptomes etc I work with 'worknames'. For example 'bin125' or 'L4', or 'BBO'. That is fine while you do your analyses, but in the end when you want to publish your work you'll want to have proper names. This function takes a mapping file that contains the short / worknames in the first column and the final names in the second column, and replaces the worknames with the final names in tree files, FASTA files, you name it.
 +
 +<code>
 +# replace taxanames in trees, fasta, etc
 +function replace_names {
 +    input=$1
 +    mappingfile=$2
 +    cp $input $input.nms
 +    cat $mappingfile | while read SEARCH REPLACE; do
 +        sed -i -r "s/$SEARCH/$REPLACE/" $1.nms
 +    done
 +}
 +</code>
 +
 +===Some other functions===
 +
 +<code>
 +# fasta to phylip
 +# depends on trimal
 +function fa2phy {
 +    trimal -in $1 -out ${1%.*}.phylip -phylip
 +}
 +
 +# reverse complement function
 +function revcomp {
 +    tr "[ATGCatgcNn]" "[TACGtacgNn]" | rev
 +}
 +
 +# sum up all numbers in a list
 +function total {
 +    tr '\n' '+' $1 | sed "s/\+$/\n/" | bc
 } }
 </code> </code>
handy_custom_functions.1620839222.txt.gz · Last modified: by 168.91.18.151