Created
January 21, 2017 13:26
-
-
Save lispm/d1850eeaeff61d371cd1754e01a798ab to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Lispworks | |
(defun fastq-reader (fname) | |
(let ((in (open fname))) | |
#'(lambda () | |
(prog2 ; <-- prog1 and prog2 are nifty! | |
(read-line in nil) | |
(read-line in nil) ; <-- this is the sequence line | |
(read-line in nil) | |
(read-line in nil))))) | |
(defparameter gen (fastq-reader "../../DATA/sm_r1.fq")) | |
(loop for seq = (funcall gen) ; <-- Note this | |
while seq do (format t "~A~%" seq)) | |
(defun kmer-gen (seq &key (kmer-size 30) (discard-N? nil)) | |
(let ((n 0) (n-max (- (length seq) kmer-size))) | |
#'(lambda () | |
(prog1 | |
(if (< n n-max) | |
(subseq seq n (+ n kmer-size)) | |
nil) | |
(incf n))))) | |
(defparameter gen (fastq-reader "../../DATA/sm_r1.fq")) | |
(loop for seq = (funcall gen) | |
while seq do | |
(let ((g (kmer-gen seq :kmer-size 10))) | |
(loop for s = (funcall g) | |
while s do (format t "~A~%" s)))) | |
; GNU Emacs / SLIME | |
(defun fastq-reader (fname) | |
(let ((in (open fname))) | |
#'(lambda () | |
(prog2 ; <-- prog1 and prog2 are nifty! | |
(read-line in nil) | |
(read-line in nil) ; <-- this is the sequence line | |
(read-line in nil) | |
(read-line in nil))))) | |
(defparameter gen (fastq-reader "../../DATA/sm_r1.fq")) | |
(loop for seq = (funcall gen) ; <-- Note this | |
while seq do (format t "~A~%" seq)) | |
(defun kmer-gen (seq &key (kmer-size 30) (discard-N? nil)) | |
(let ((n 0) (n-max (- (length seq) kmer-size))) | |
#'(lambda () | |
(prog1 | |
(if (< n n-max) | |
(subseq seq n (+ n kmer-size)) | |
nil) | |
(incf n))))) | |
(defparameter gen (fastq-reader "../../DATA/sm_r1.fq")) | |
(loop for seq = (funcall gen) | |
while seq do | |
(let ((g (kmer-gen seq :kmer-size 10))) | |
(loop for s = (funcall g) | |
while s do (format t "~A~%" s)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment