How to count number of molecules in chemical file (mol2, sdf, smi or mol) in bash?
#!/bin/bash echo echo "Count number of molecules in a file" echo [[ -n "$1" ]] || { echo; echo "Usage:"; echo "$0 chemical_database.ext"; exit 0 ; } ext=${1#*.} echo -n "Number of molecules in $1 file: " case $ext in "sdf" ) cat $1 | grep "ISIS" | wc -l ;; "smi" ) cat $1 | wc -l ;; "mol2" ) cat $1 | grep '@MOLECULE' | wc -l ;; "mol" ) cat $1 | grep "M END" | wc -l ;; * ) echo "Extension not supported :(" ;; esac
EDIT 2016.10: there is much easier way to do it:
obabel "filename.sdf" -onul --count 2>&1 | grep "molecules converted" | cut -d" " -f 1
Brak komentarzy:
Prześlij komentarz